diff options
author | AndersBroman <a.broman@bredband.net> | 2014-12-16 23:46:59 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-12-17 12:25:53 +0000 |
commit | d99fe210afb55e798627291f5276c9466ef4a5fc (patch) | |
tree | 8edd9a5a95906bd5bca2906820ae9e699f9d74aa /epan | |
parent | df639f509e812fff3c5eb4bdf4f77988c6ec122b (diff) |
Update to V12.5.0
Bug: 10782
Change-Id: I5fd4ec14279411682d8a23f5e0f503180113f093
Reviewed-on: https://code.wireshark.org/review/5790
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-gprscdr.c | 502 | ||||
-rw-r--r-- | epan/dissectors/packet-gprscdr.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-gtp.c | 2 |
3 files changed, 476 insertions, 30 deletions
diff --git a/epan/dissectors/packet-gprscdr.c b/epan/dissectors/packet-gprscdr.c index 6c7d73eb6d..10d9f3b8ea 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 */ -/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1171.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1171.asn */ +/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1250.asn */ /* Input file: packet-gprscdr-template.c */ @@ -178,6 +178,9 @@ static int hf_gprscdr_sgsnSMORecord_01 = -1; /* SGSNSMORecord */ static int hf_gprscdr_sgsnSMTRecord_01 = -1; /* SGSNSMTRecord */ static int hf_gprscdr_sGWRecord = -1; /* SGWRecord */ static int hf_gprscdr_pGWRecord = -1; /* PGWRecord */ +static int hf_gprscdr_tDFRecord = -1; /* TDFRecord */ +static int hf_gprscdr_iPERecord = -1; /* IPERecord */ +static int hf_gprscdr_ePDGRecord = -1; /* EPDGRecord */ static int hf_gprscdr_recordType_01 = -1; /* RecordType */ static int hf_gprscdr_s_GWAddress = -1; /* GSNAddress */ static int hf_gprscdr_servingNodeAddress = -1; /* SEQUENCE_OF_GSNAddress */ @@ -205,14 +208,34 @@ static int hf_gprscdr_s_GWiPv6Address = -1; /* GSNAddress */ static int hf_gprscdr_servingNodeiPv6Address = -1; /* SEQUENCE_OF_GSNAddress */ static int hf_gprscdr_servingNodeiPv6Address_item = -1; /* GSNAddress */ static int hf_gprscdr_p_GWiPv6AddressUsed = -1; /* GSNAddress */ +static int hf_gprscdr_retransmission = -1; /* NULL */ +static int hf_gprscdr_userLocationInfoTime = -1; /* TimeStamp */ +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_p_GWAddress = -1; /* GSNAddress */ -static int hf_gprscdr_servinggNodePLMNIdentifier = -1; /* PLMN_Id */ static int hf_gprscdr_listOfServiceData_01 = -1; /* SEQUENCE_OF_ChangeOfServiceCondition */ static int hf_gprscdr_listOfServiceData_item_01 = -1; /* ChangeOfServiceCondition */ static int hf_gprscdr_servedMNNAI = -1; /* SubscriptionID */ static int hf_gprscdr_served3gpp2MEID = -1; /* OCTET_STRING */ static int hf_gprscdr_threeGPP2UserLocationInformation = -1; /* OCTET_STRING */ static int hf_gprscdr_tWANUserLocationInformation = -1; /* TWANUserLocationInfo */ +static int hf_gprscdr_ePCQoSInformation = -1; /* EPCQoSInformation */ +static int hf_gprscdr_tDFAddress = -1; /* GSNAddress */ +static int hf_gprscdr_tDFiPv6AddressUsed = -1; /* GSNAddress */ +static int hf_gprscdr_tDFPLMNIdentifier = -1; /* PLMN_Id */ +static int hf_gprscdr_servedFixedSubsID = -1; /* FixedSubsID */ +static int hf_gprscdr_accessLineIdentifier = -1; /* AccessLineIdentifier */ +static int hf_gprscdr_fixedUserLocationInformation = -1; /* FixedUserLocationInformation */ +static int hf_gprscdr_iPEdgeAddress = -1; /* GSNAddress */ +static int hf_gprscdr_iPCANsessionType = -1; /* PDPType */ +static int hf_gprscdr_servedIPCANsessionAddress = -1; /* PDPAddress */ +static int hf_gprscdr_iPEdgeOperatorIdentifier = -1; /* PLMN_Id */ +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_changeLocation = -1; /* SEQUENCE_OF_ChangeLocation */ static int hf_gprscdr_changeLocation_item = -1; /* ChangeLocation */ static int hf_gprscdr_cAMELInformationMM = -1; /* CAMELInformationMM */ @@ -223,6 +246,8 @@ 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_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_sCFAddress = -1; /* SCFAddress */ @@ -240,7 +265,7 @@ static int hf_gprscdr_cAMELDestinationSubscriberNumber = -1; /* SmsTpDestinatio static int hf_gprscdr_cAMELSMSCAddress = -1; /* AddressString */ static int hf_gprscdr_smsReferenceNumber = -1; /* CallReferenceNumber */ static int hf_gprscdr_changeCondition_01 = -1; /* ChangeCondition */ -static int hf_gprscdr_ePCQoSInformation = -1; /* EPCQoSInformation */ +static int hf_gprscdr_presenceReportingAreaStatus = -1; /* PresenceReportingAreaStatus */ static int hf_gprscdr_serviceConditionChange_01 = -1; /* ServiceConditionChange */ static int hf_gprscdr_qoSInformationNeg_01 = -1; /* EPCQoSInformation */ static int hf_gprscdr_aFRecordInformation = -1; /* SEQUENCE_OF_AFRecordInformation */ @@ -251,6 +276,7 @@ static int hf_gprscdr_serviceSpecificInfo = -1; /* SEQUENCE_OF_ServiceSpecific 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_routingAreaCode = -1; /* RoutingAreaCode */ static int hf_gprscdr_cellId = -1; /* CellId */ static int hf_gprscdr_mCC_MNC = -1; /* PLMN_Id */ @@ -265,16 +291,17 @@ static int hf_gprscdr_aPNAggregateMaxBitrateDL = -1; /* INTEGER */ static int hf_gprscdr_numberOfEvents = -1; /* INTEGER */ static int hf_gprscdr_eventTimeStamps = -1; /* SEQUENCE_OF_TimeStamp */ static int hf_gprscdr_eventTimeStamps_item = -1; /* TimeStamp */ +static int hf_gprscdr_sSID = -1; /* OCTET_STRING */ +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_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_timeQuotaType = -1; /* TimeQuotaType */ static int hf_gprscdr_baseTimeInterval = -1; /* INTEGER */ -static int hf_gprscdr_sSID = -1; /* OCTET_STRING */ -static int hf_gprscdr_bSSID = -1; /* OCTET_STRING */ static int hf_gprscdr_cSGId = -1; /* CSGId */ static int hf_gprscdr_cSGAccessMode = -1; /* CSGAccessMode */ static int hf_gprscdr_cSGMembershipIndication = -1; /* NULL */ @@ -375,11 +402,15 @@ static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition = -1; static gint ett_gprscdr_SEQUENCE_OF_ServingNodeType = -1; static gint ett_gprscdr_PGWRecord = -1; static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition = -1; +static gint ett_gprscdr_TDFRecord = -1; +static gint ett_gprscdr_IPERecord = -1; +static gint ett_gprscdr_EPDGRecord = -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_AccessLineIdentifier = -1; static gint ett_gprscdr_AFRecordInformation = -1; static gint ett_gprscdr_CAMELInformationMM = -1; static gint ett_gprscdr_CAMELInformationPDP = -1; @@ -392,9 +423,11 @@ static gint ett_gprscdr_ChangeLocation = -1; static gint ett_gprscdr_EPCQoSInformation = -1; static gint ett_gprscdr_EventBasedChargingInformation = -1; static gint ett_gprscdr_SEQUENCE_OF_TimeStamp = -1; +static gint ett_gprscdr_FixedUserLocationInformation = -1; static gint ett_gprscdr_Flows = -1; static gint ett_gprscdr_T_flowNumber = -1; static gint ett_gprscdr_PDPAddress = -1; +static gint ett_gprscdr_PresenceReportingAreaInfo = -1; static gint ett_gprscdr_PSFurnishChargingInformation = -1; static gint ett_gprscdr_ServiceConditionChange = -1; static gint ett_gprscdr_TimeQuotaMechanism = -1; @@ -586,7 +619,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 67 "../../asn1/gprscdr/gprscdr.cnf" +#line 69 "../../asn1/gprscdr/gprscdr.cnf" proto_tree *ext_tree; ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gprscdr_managementextension_information, NULL, "Information"); @@ -909,7 +942,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 116 "../../asn1/gprscdr/gprscdr.cnf" +#line 118 "../../asn1/gprscdr/gprscdr.cnf" /* * * 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75] @@ -1041,9 +1074,15 @@ static const value_string gprscdr_RecordType_vals[] = { { 81, "cPFRecord" }, { 84, "sGWRecord" }, { 85, "pGWRecord" }, + { 92, "tDFRecord" }, + { 95, "iPERecord" }, + { 96, "ePDGRecord" }, { 83, "mMTelRecord" }, { 87, "mSCsRVCCRecord" }, { 88, "mMTRFRecord" }, + { 99, "iCSRegisterRecord" }, + { 93, "sCSMORecord" }, + { 94, "sCSMTRecord" }, { 0, NULL } }; @@ -1150,7 +1189,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 77 "../../asn1/gprscdr/gprscdr.cnf" +#line 79 "../../asn1/gprscdr/gprscdr.cnf" /* * * The contents of this field are a compact form of the UTCTime format @@ -1523,6 +1562,7 @@ static const value_string gprscdr_ChChSelectionMode_vals[] = { { 3, "homeDefault" }, { 4, "roamingDefault" }, { 5, "visitingDefault" }, + { 6, "fixedDefault" }, { 0, NULL } }; @@ -1626,7 +1666,7 @@ dissect_gprscdr_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_gprscdr_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 143 "../../asn1/gprscdr/gprscdr.cnf" +#line 145 "../../asn1/gprscdr/gprscdr.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -1734,6 +1774,8 @@ static const value_string gprscdr_CauseForRecClosing_vals[] = { { 22, "rATChange" }, { 23, "mSTimeZoneChange" }, { 24, "sGSNPLMNIDChange" }, + { 25, "sGWChange" }, + { 26, "aPNAMBRChange" }, { 52, "unauthorizedRequestingNetwork" }, { 53, "unauthorizedLCSClient" }, { 54, "positionMethodFailure" }, @@ -1772,6 +1814,22 @@ dissect_gprscdr_CAMELInformationMM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, } +static const value_string gprscdr_CNOperatorSelectionEntity_vals[] = { + { 0, "servCNSelectedbyUE" }, + { 1, "servCNSelectedbyNtw" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_CNOperatorSelectionEntity(gboolean implicit_tag _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 SGSNMMRecord_set[] = { { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, @@ -1797,6 +1855,8 @@ static const ber_sequence_t SGSNMMRecord_set[] = { { &hf_gprscdr_rATType , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, { &hf_gprscdr_cellPLMNId , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, { NULL, 0, 0, 0, NULL } }; @@ -2160,6 +2220,22 @@ dissect_gprscdr_EPCQoSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, } +static const value_string gprscdr_PresenceReportingAreaStatus_vals[] = { + { 0, "insideArea" }, + { 1, "outsideArea" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_PresenceReportingAreaStatus(gboolean implicit_tag _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 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 }, @@ -2169,6 +2245,8 @@ static const ber_sequence_t ChangeOfCharCondition_sequence[] = { { &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 } }; @@ -2274,6 +2352,8 @@ static const ber_sequence_t SGSNPDPRecord_set[] = { { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation }, { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, { &hf_gprscdr_lowPriorityIndicator, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, { NULL, 0, 0, 0, NULL } }; @@ -2335,6 +2415,10 @@ static const ber_sequence_t SGSNSMORecord_set[] = { { &hf_gprscdr_mMEName , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity }, { &hf_gprscdr_mMERealm , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity }, { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_retransmission, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, { NULL, 0, 0, 0, NULL } }; @@ -2374,6 +2458,10 @@ static const ber_sequence_t SGSNSMTRecord_set[] = { { &hf_gprscdr_mMEName , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity }, { &hf_gprscdr_mMERealm , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity }, { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_retransmission, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, { NULL, 0, 0, 0, NULL } }; @@ -2408,6 +2496,21 @@ dissect_gprscdr_SEQUENCE_OF_ServingNodeType(gboolean implicit_tag _U_, tvbuff_t } +static const ber_sequence_t PresenceReportingAreaInfo_sequence[] = { + { &hf_gprscdr_presenceReportingAreaIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_PresenceReportingAreaInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PresenceReportingAreaInfo_sequence, hf_index, ett_gprscdr_PresenceReportingAreaInfo); + + 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 }, @@ -2433,7 +2536,7 @@ static const ber_sequence_t SGWRecord_set[] = { { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, - { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, + { &hf_gprscdr_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_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone }, { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, @@ -2452,6 +2555,12 @@ static const ber_sequence_t SGWRecord_set[] = { { &hf_gprscdr_s_GWiPv6Address, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, { &hf_gprscdr_servingNodeiPv6Address, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_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_userLocationInfoTime, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, + { &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 }, { NULL, 0, 0, 0, NULL } }; @@ -2648,6 +2757,17 @@ dissect_gprscdr_SEQUENCE_OF_ServiceSpecificInfo(gboolean implicit_tag _U_, tvbuf } + +static int +dissect_gprscdr_ADCRuleBaseName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, + actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + static const ber_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 }, @@ -2673,6 +2793,8 @@ static const ber_sequence_t ChangeOfServiceCondition_sequence[] = { { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, { &hf_gprscdr_sponsorIdentity, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, { &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 }, { NULL, 0, 0, 0, NULL } }; @@ -2723,6 +2845,7 @@ static const ber_sequence_t PGWRecord_set[] = { { &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 }, @@ -2736,10 +2859,9 @@ static const ber_sequence_t PGWRecord_set[] = { { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics }, { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, - { &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, - { &hf_gprscdr_servinggNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation }, - { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, + { &hf_gprscdr_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_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone }, { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, @@ -2761,6 +2883,13 @@ static const ber_sequence_t PGWRecord_set[] = { { &hf_gprscdr_servingNodeiPv6Address, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress }, { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo }, + { &hf_gprscdr_retransmission, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, + { &hf_gprscdr_ePCQoSInformation, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation }, + { &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 }, { NULL, 0, 0, 0, NULL } }; @@ -2773,6 +2902,203 @@ dissect_gprscdr_PGWRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs } + +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); + + return offset; +} + + +static const ber_sequence_t AccessLineIdentifier_sequence[] = { + { &hf_gprscdr_physicalAccessID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UTF8String }, + { &hf_gprscdr_logicalAccessID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_AccessLineIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AccessLineIdentifier_sequence, hf_index, ett_gprscdr_AccessLineIdentifier); + + return offset; +} + + +static const ber_sequence_t FixedUserLocationInformation_sequence[] = { + { &hf_gprscdr_sSID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_bSSID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_accessLineIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessLineIdentifier }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_FixedUserLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + FixedUserLocationInformation_sequence, hf_index, ett_gprscdr_FixedUserLocationInformation); + + return offset; +} + + +static const ber_sequence_t TDFRecord_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_p_GWAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_servingNodeAddress, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress }, + { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI }, + { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType }, + { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag }, + { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode }, + { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN }, + { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics }, + { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation }, + { &hf_gprscdr_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_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone }, + { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_listOfServiceData_01, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition }, + { &hf_gprscdr_servingNodeType, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServingNodeType }, + { &hf_gprscdr_servedMNNAI , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionID }, + { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_served3gpp2MEID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 41, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, + { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation }, + { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag }, + { &hf_gprscdr_servingNodeiPv6Address, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress }, + { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo }, + { &hf_gprscdr_retransmission, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_tDFAddress , BER_CLASS_CON, 53, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_tDFiPv6AddressUsed, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_tDFPLMNIdentifier, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_servedFixedSubsID, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedSubsID }, + { &hf_gprscdr_accessLineIdentifier, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessLineIdentifier }, + { &hf_gprscdr_presenceReportingAreaInfo, BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaInfo }, + { &hf_gprscdr_fixedUserLocationInformation, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedUserLocationInformation }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_TDFRecord(gboolean implicit_tag _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, + TDFRecord_set, hf_index, ett_gprscdr_TDFRecord); + + return offset; +} + + +static const ber_sequence_t IPERecord_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_iPEdgeAddress, 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_iPCANsessionType, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType }, + { &hf_gprscdr_servedIPCANsessionAddress, 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_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_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation }, + { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, + { &hf_gprscdr_listOfServiceData_01, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition }, + { &hf_gprscdr_servedMNNAI , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionID }, + { &hf_gprscdr_iPEdgeOperatorIdentifier, 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_servedIPCANsessionAddressExt, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag }, + { &hf_gprscdr_iPEdgeiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_retransmission, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_servedFixedSubsID, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedSubsID }, + { &hf_gprscdr_accessLineIdentifier, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessLineIdentifier }, + { &hf_gprscdr_fixedUserLocationInformation, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedUserLocationInformation }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_IPERecord(gboolean implicit_tag _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, + IPERecord_set, hf_index, ett_gprscdr_IPERecord); + + return offset; +} + + +static const ber_sequence_t EPDGRecord_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_ePDGAddressUsed, 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_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_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_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 }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_EPDGRecord(gboolean implicit_tag _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, + EPDGRecord_set, hf_index, ett_gprscdr_EPDGRecord); + + return offset; +} + + const value_string gprscdr_GPRSRecord_vals[] = { { 20, "sgsnPDPRecord" }, { 22, "sgsnMMRecord" }, @@ -2780,6 +3106,9 @@ const value_string gprscdr_GPRSRecord_vals[] = { { 24, "sgsnSMTRecord" }, { 78, "sGWRecord" }, { 79, "pGWRecord" }, + { 92, "tDFRecord" }, + { 95, "iPERecord" }, + { 96, "ePDGRecord" }, { 0, NULL } }; @@ -2790,6 +3119,9 @@ static const ber_choice_t GPRSRecord_choice[] = { { 24, &hf_gprscdr_sgsnSMTRecord_01, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecord }, { 78, &hf_gprscdr_sGWRecord , BER_CLASS_CON, 78, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWRecord }, { 79, &hf_gprscdr_pGWRecord , BER_CLASS_CON, 79, BER_FLAGS_IMPLTAG, dissect_gprscdr_PGWRecord }, + { 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 }, { 0, NULL, 0, 0, 0, NULL } }; @@ -3334,6 +3666,18 @@ proto_register_gprscdr(void) { "pGWRecord", "gprscdr.pGWRecord_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_tDFRecord, + { "tDFRecord", "gprscdr.tDFRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_iPERecord, + { "iPERecord", "gprscdr.iPERecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_ePDGRecord, + { "ePDGRecord", "gprscdr.ePDGRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_recordType_01, { "recordType", "gprscdr.recordType", FT_INT32, BASE_DEC, VALS(gprscdr_RecordType_vals), 0, @@ -3442,14 +3786,34 @@ proto_register_gprscdr(void) { "p-GWiPv6AddressUsed", "gprscdr.p_GWiPv6AddressUsed", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, "GSNAddress", HFILL }}, + { &hf_gprscdr_retransmission, + { "retransmission", "gprscdr.retransmission_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_userLocationInfoTime, + { "userLocationInfoTime", "gprscdr.userLocationInfoTime", + FT_BYTES, BASE_NONE, NULL, 0, + "TimeStamp", HFILL }}, + { &hf_gprscdr_cNOperatorSelectionEnt, + { "cNOperatorSelectionEnt", "gprscdr.cNOperatorSelectionEnt", + FT_UINT32, BASE_DEC, VALS(gprscdr_CNOperatorSelectionEntity_vals), 0, + "CNOperatorSelectionEntity", HFILL }}, + { &hf_gprscdr_presenceReportingAreaInfo, + { "presenceReportingAreaInfo", "gprscdr.presenceReportingAreaInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_lastUserLocationInformation, + { "lastUserLocationInformation", "gprscdr.lastUserLocationInformation", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, + { &hf_gprscdr_lastMSTimeZone, + { "lastMSTimeZone", "gprscdr.lastMSTimeZone", + FT_BYTES, BASE_NONE, NULL, 0, + "MSTimeZone", HFILL }}, { &hf_gprscdr_p_GWAddress, { "p-GWAddress", "gprscdr.p_GWAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, "GSNAddress", HFILL }}, - { &hf_gprscdr_servinggNodePLMNIdentifier, - { "servinggNodePLMNIdentifier", "gprscdr.servinggNodePLMNIdentifier", - FT_BYTES, BASE_NONE, NULL, 0, - "PLMN_Id", HFILL }}, { &hf_gprscdr_listOfServiceData_01, { "listOfServiceData", "gprscdr.listOfServiceData", FT_UINT32, BASE_DEC, NULL, 0, @@ -3474,6 +3838,66 @@ proto_register_gprscdr(void) { "tWANUserLocationInformation", "gprscdr.tWANUserLocationInformation_element", FT_NONE, BASE_NONE, NULL, 0, "TWANUserLocationInfo", HFILL }}, + { &hf_gprscdr_ePCQoSInformation, + { "ePCQoSInformation", "gprscdr.ePCQoSInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_tDFAddress, + { "tDFAddress", "gprscdr.tDFAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_tDFiPv6AddressUsed, + { "tDFiPv6AddressUsed", "gprscdr.tDFiPv6AddressUsed", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_tDFPLMNIdentifier, + { "tDFPLMNIdentifier", "gprscdr.tDFPLMNIdentifier", + FT_BYTES, BASE_NONE, NULL, 0, + "PLMN_Id", HFILL }}, + { &hf_gprscdr_servedFixedSubsID, + { "servedFixedSubsID", "gprscdr.servedFixedSubsID", + FT_BYTES, BASE_NONE, NULL, 0, + "FixedSubsID", HFILL }}, + { &hf_gprscdr_accessLineIdentifier, + { "accessLineIdentifier", "gprscdr.accessLineIdentifier_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_fixedUserLocationInformation, + { "fixedUserLocationInformation", "gprscdr.fixedUserLocationInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_iPEdgeAddress, + { "iPEdgeAddress", "gprscdr.iPEdgeAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_iPCANsessionType, + { "iPCANsessionType", "gprscdr.iPCANsessionType", + FT_BYTES, BASE_NONE, NULL, 0, + "PDPType", HFILL }}, + { &hf_gprscdr_servedIPCANsessionAddress, + { "servedIPCANsessionAddress", "gprscdr.servedIPCANsessionAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0, + "PDPAddress", HFILL }}, + { &hf_gprscdr_iPEdgeOperatorIdentifier, + { "iPEdgeOperatorIdentifier", "gprscdr.iPEdgeOperatorIdentifier", + FT_BYTES, BASE_NONE, NULL, 0, + "PLMN_Id", HFILL }}, + { &hf_gprscdr_servedIPCANsessionAddressExt, + { "servedIPCANsessionAddressExt", "gprscdr.servedIPCANsessionAddressExt", + FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0, + "PDPAddress", HFILL }}, + { &hf_gprscdr_iPEdgeiPv6AddressUsed, + { "iPEdgeiPv6AddressUsed", "gprscdr.iPEdgeiPv6AddressUsed", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_ePDGAddressUsed, + { "ePDGAddressUsed", "gprscdr.ePDGAddressUsed", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_ePDGiPv6AddressUsed, + { "ePDGiPv6AddressUsed", "gprscdr.ePDGiPv6AddressUsed", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, { &hf_gprscdr_changeLocation, { "changeLocation", "gprscdr.changeLocation", FT_UINT32, BASE_DEC, NULL, 0, @@ -3514,6 +3938,14 @@ proto_register_gprscdr(void) { "originatingAddress", "gprscdr.originatingAddress", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, + { &hf_gprscdr_physicalAccessID, + { "physicalAccessID", "gprscdr.physicalAccessID", + FT_STRING, BASE_NONE, NULL, 0, + "UTF8String", HFILL }}, + { &hf_gprscdr_logicalAccessID, + { "logicalAccessID", "gprscdr.logicalAccessID", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, { &hf_gprscdr_aFChargingIdentifier, { "aFChargingIdentifier", "gprscdr.aFChargingIdentifier", FT_BYTES, BASE_NONE, NULL, 0, @@ -3582,9 +4014,9 @@ proto_register_gprscdr(void) { "changeCondition", "gprscdr.changeCondition", FT_UINT32, BASE_DEC, VALS(gprscdr_ChangeCondition_vals), 0, NULL, HFILL }}, - { &hf_gprscdr_ePCQoSInformation, - { "ePCQoSInformation", "gprscdr.ePCQoSInformation_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_gprscdr_presenceReportingAreaStatus, + { "presenceReportingAreaStatus", "gprscdr.presenceReportingAreaStatus", + FT_UINT32, BASE_DEC, VALS(gprscdr_PresenceReportingAreaStatus_vals), 0, NULL, HFILL }}, { &hf_gprscdr_serviceConditionChange_01, { "serviceConditionChange", "gprscdr.serviceConditionChange", @@ -3626,6 +4058,10 @@ proto_register_gprscdr(void) { "applicationServiceProviderIdentity", "gprscdr.applicationServiceProviderIdentity", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING", HFILL }}, + { &hf_gprscdr_aDCRuleBaseName, + { "aDCRuleBaseName", "gprscdr.aDCRuleBaseName", + FT_STRING, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_routingAreaCode, { "routingAreaCode", "gprscdr.routingAreaCode", FT_BYTES, BASE_NONE, NULL, 0, @@ -3682,6 +4118,14 @@ proto_register_gprscdr(void) { "TimeStamp", "gprscdr.TimeStamp", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_sSID, + { "sSID", "gprscdr.sSID", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, + { &hf_gprscdr_bSSID, + { "bSSID", "gprscdr.bSSID", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, { &hf_gprscdr_mediaComponentNumber, { "mediaComponentNumber", "gprscdr.mediaComponentNumber", FT_INT32, BASE_DEC, NULL, 0, @@ -3698,6 +4142,10 @@ proto_register_gprscdr(void) { "iPAddress", "gprscdr.iPAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, NULL, HFILL }}, + { &hf_gprscdr_presenceReportingAreaIdentifier, + { "presenceReportingAreaIdentifier", "gprscdr.presenceReportingAreaIdentifier", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, { &hf_gprscdr_pSFreeFormatData, { "pSFreeFormatData", "gprscdr.pSFreeFormatData", FT_BYTES, BASE_NONE, NULL, 0, @@ -3714,14 +4162,6 @@ proto_register_gprscdr(void) { "baseTimeInterval", "gprscdr.baseTimeInterval", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, - { &hf_gprscdr_sSID, - { "sSID", "gprscdr.sSID", - FT_BYTES, BASE_NONE, NULL, 0, - "OCTET_STRING", HFILL }}, - { &hf_gprscdr_bSSID, - { "bSSID", "gprscdr.bSSID", - FT_BYTES, BASE_NONE, NULL, 0, - "OCTET_STRING", HFILL }}, { &hf_gprscdr_cSGId, { "cSGId", "gprscdr.cSGId", FT_BYTES, BASE_NONE, NULL, 0, @@ -3998,11 +4438,15 @@ proto_register_gprscdr(void) &ett_gprscdr_SEQUENCE_OF_ServingNodeType, &ett_gprscdr_PGWRecord, &ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition, + &ett_gprscdr_TDFRecord, + &ett_gprscdr_IPERecord, + &ett_gprscdr_EPDGRecord, &ett_gprscdr_SGSNMMRecord, &ett_gprscdr_SEQUENCE_OF_ChangeLocation, &ett_gprscdr_SGSNPDPRecord, &ett_gprscdr_SGSNSMORecord, &ett_gprscdr_SGSNSMTRecord, + &ett_gprscdr_AccessLineIdentifier, &ett_gprscdr_AFRecordInformation, &ett_gprscdr_CAMELInformationMM, &ett_gprscdr_CAMELInformationPDP, @@ -4015,9 +4459,11 @@ proto_register_gprscdr(void) &ett_gprscdr_EPCQoSInformation, &ett_gprscdr_EventBasedChargingInformation, &ett_gprscdr_SEQUENCE_OF_TimeStamp, + &ett_gprscdr_FixedUserLocationInformation, &ett_gprscdr_Flows, &ett_gprscdr_T_flowNumber, &ett_gprscdr_PDPAddress, + &ett_gprscdr_PresenceReportingAreaInfo, &ett_gprscdr_PSFurnishChargingInformation, &ett_gprscdr_ServiceConditionChange, &ett_gprscdr_TimeQuotaMechanism, diff --git a/epan/dissectors/packet-gprscdr.h b/epan/dissectors/packet-gprscdr.h index 90b68db49a..53bfd390dc 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 */ -/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1171.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1171.asn */ +/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1250.asn */ /* Input file: packet-gprscdr-template.h */ diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c index d587346739..6ef34c6658 100644 --- a/epan/dissectors/packet-gtp.c +++ b/epan/dissectors/packet-gtp.c @@ -7737,7 +7737,7 @@ decode_gtp_data_req(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree if(format==1) { if(rel_id == 6){ dissect_gprscdr_GPRSCallEventRecord_PDU(next_tvb, pinfo, cdr_dr_tree, NULL); - }else if((rel_id == 8)||(rel_id == 9)){ + }else if(rel_id >6){ dissect_gprscdr_GPRSRecord_PDU(next_tvb, pinfo, cdr_dr_tree, NULL); } } else { |