1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-gprscdr.c */
4 /* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypes.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypes.asn */
5
6 /* Input file: packet-gprscdr-template.c */
7
8 #line 1 "./asn1/gprscdr/packet-gprscdr-template.c"
9 /* packet-gprscdr-template.c
10 * Copyright 2011 , Anders Broman <anders.broman [AT] ericsson.com>
11 *
12 * Wireshark - Network traffic analyzer
13 * By Gerald Combs <gerald@wireshark.org>
14 * Copyright 1998 Gerald Combs
15 *
16 * SPDX-License-Identifier: GPL-2.0-or-later
17 * References: 3GPP TS 32.298 V16.7.0
18 */
19
20 #include "config.h"
21
22 #include <epan/packet.h>
23 #include <epan/expert.h>
24 #include <epan/asn1.h>
25
26 #include "packet-ber.h"
27 #include "packet-gsm_map.h"
28 #include "packet-gsm_a_common.h"
29 #include "packet-e212.h"
30 #include "packet-gprscdr.h"
31 #include "packet-gtp.h"
32 #include "packet-gtpv2.h"
33
34 #define PNAME "GPRS CDR"
35 #define PSNAME "GPRSCDR"
36 #define PFNAME "gprscdr"
37
38 void proto_register_gprscdr(void);
39
40 /* Define the GPRS CDR proto */
41 static int proto_gprscdr = -1;
42
43
44 /*--- Included file: packet-gprscdr-hf.c ---*/
45 #line 1 "./asn1/gprscdr/packet-gprscdr-hf.c"
46 static int hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU = -1; /* GPRSCallEventRecord */
47 static int hf_gprscdr_gprscdr_GPRSRecord_PDU = -1; /* GPRSRecord */
48 static int hf_gprscdr_gsm0408Cause = -1; /* INTEGER */
49 static int hf_gprscdr_gsm0902MapErrorValue = -1; /* INTEGER */
50 static int hf_gprscdr_itu_tQ767Cause = -1; /* INTEGER */
51 static int hf_gprscdr_networkSpecificCause = -1; /* ManagementExtension */
52 static int hf_gprscdr_manufacturerSpecificCause = -1; /* ManagementExtension */
53 static int hf_gprscdr_positionMethodFailureCause = -1; /* PositionMethodFailure_Diagnostic */
54 static int hf_gprscdr_unauthorizedLCSClientCause = -1; /* UnauthorizedLCSClient_Diagnostic */
55 static int hf_gprscdr_diameterResultCodeAndExperimentalResult = -1; /* INTEGER */
56 static int hf_gprscdr_plmnId = -1; /* PLMN_Id */
57 static int hf_gprscdr_eutraCellId = -1; /* EutraCellId */
58 static int hf_gprscdr_nid = -1; /* Nid */
59 static int hf_gprscdr_rANNASCause = -1; /* SEQUENCE_OF_RANNASCause */
60 static int hf_gprscdr_rANNASCause_item = -1; /* RANNASCause */
61 static int hf_gprscdr_sIP_URI = -1; /* GraphicString */
62 static int hf_gprscdr_tEL_URI = -1; /* GraphicString */
63 static int hf_gprscdr_uRN = -1; /* GraphicString */
64 static int hf_gprscdr_iSDN_E164 = -1; /* GraphicString */
65 static int hf_gprscdr_externalId = -1; /* UTF8String */
66 static int hf_gprscdr_iPBinaryAddress = -1; /* IPBinaryAddress */
67 static int hf_gprscdr_iPTextRepresentedAddress = -1; /* IPTextRepresentedAddress */
68 static int hf_gprscdr_iPBinV4Address = -1; /* IPBinV4Address */
69 static int hf_gprscdr_iPBinV6Address_choice = -1; /* IPBinV6AddressWithOrWithoutPrefixLength */
70 static int hf_gprscdr_iPBinV6Address = -1; /* IPBinV6Address */
71 static int hf_gprscdr_iPBinV6AddressWithPrefix = -1; /* IPBinV6AddressWithPrefixLength */
72 static int hf_gprscdr_pDPAddressPrefixLength = -1; /* PDPAddressPrefixLength */
73 static int hf_gprscdr_iPTextV4Address = -1; /* IA5String_SIZE_7_15 */
74 static int hf_gprscdr_iPTextV6Address = -1; /* IA5String_SIZE_15_45 */
75 static int hf_gprscdr_lcsClientExternalID = -1; /* LCSClientExternalID */
76 static int hf_gprscdr_lcsClientDialedByMS = -1; /* AddressString */
77 static int hf_gprscdr_lcsClientInternalID = -1; /* LCSClientInternalID */
78 static int hf_gprscdr_locationAreaCode = -1; /* LocationAreaCode */
79 static int hf_gprscdr_cellId = -1; /* CellId */
80 static int hf_gprscdr_mCC_MNC = -1; /* MCC_MNC */
81 static int hf_gprscdr_ManagementExtensions_item = -1; /* ManagementExtension */
82 static int hf_gprscdr_tMGI = -1; /* TMGI */
83 static int hf_gprscdr_mBMSSessionIdentity = -1; /* MBMSSessionIdentity */
84 static int hf_gprscdr_mBMSServiceType = -1; /* MBMSServiceType */
85 static int hf_gprscdr_mBMSUserServiceType = -1; /* MBMSUserServiceType */
86 static int hf_gprscdr_mBMS2G3GIndicator = -1; /* MBMS2G3GIndicator */
87 static int hf_gprscdr_fileRepairSupported = -1; /* BOOLEAN */
88 static int hf_gprscdr_rAI = -1; /* RoutingAreaCode */
89 static int hf_gprscdr_mBMSServiceArea = -1; /* MBMSServiceArea */
90 static int hf_gprscdr_requiredMBMSBearerCaps = -1; /* RequiredMBMSBearerCapabilities */
91 static int hf_gprscdr_mBMSGWAddress = -1; /* GSNAddress */
92 static int hf_gprscdr_cNIPMulticastDistribution = -1; /* CNIPMulticastDistribution */
93 static int hf_gprscdr_mBMSDataTransferStart = -1; /* MBMSTime */
94 static int hf_gprscdr_mBMSDataTransferStop = -1; /* MBMSTime */
95 static int hf_gprscdr_nrCellId = -1; /* NrCellId */
96 static int hf_gprscdr_iPAddress = -1; /* IPAddress */
97 static int hf_gprscdr_nRcgi = -1; /* Ncgi */
98 static int hf_gprscdr_ecgi = -1; /* Ecgi */
99 static int hf_gprscdr_sCSAddress = -1; /* IPAddress */
100 static int hf_gprscdr_sCSRealm = -1; /* DiameterIdentity */
101 static int hf_gprscdr_serviceSpecificData = -1; /* GraphicString */
102 static int hf_gprscdr_serviceSpecificType = -1; /* INTEGER */
103 static int hf_gprscdr_subscriptionIDType = -1; /* SubscriptionIDType */
104 static int hf_gprscdr_subscriptionIDData = -1; /* UTF8String */
105 static int hf_gprscdr_identifier = -1; /* T_identifier */
106 static int hf_gprscdr_significance = -1; /* BOOLEAN */
107 static int hf_gprscdr_information = -1; /* T_information */
108 static int hf_gprscdr_sgsnPDPRecord = -1; /* SGSNPDPRecordV651 */
109 static int hf_gprscdr_ggsnPDPRecord = -1; /* GGSNPDPRecord */
110 static int hf_gprscdr_sgsnMMRecord = -1; /* SGSNMMRecord */
111 static int hf_gprscdr_sgsnSMORecord = -1; /* SGSNSMORecordV651 */
112 static int hf_gprscdr_sgsnSMTRecord = -1; /* SGSNSMTRecordV651 */
113 static int hf_gprscdr_egsnPDPRecord = -1; /* EGSNPDPRecord */
114 static int hf_gprscdr_recordType = -1; /* CallEventRecordType */
115 static int hf_gprscdr_networkInitiation = -1; /* NetworkInitiatedPDPContext */
116 static int hf_gprscdr_servedIMSI = -1; /* IMSI */
117 static int hf_gprscdr_ggsnAddress = -1; /* GSNAddress */
118 static int hf_gprscdr_chargingID = -1; /* ChargingID */
119 static int hf_gprscdr_sgsnAddress = -1; /* SEQUENCE_OF_GSNAddress */
120 static int hf_gprscdr_sgsnAddress_item = -1; /* GSNAddress */
121 static int hf_gprscdr_accessPointNameNI = -1; /* AccessPointNameNI */
122 static int hf_gprscdr_pdpType = -1; /* PDPType */
123 static int hf_gprscdr_servedPDPAddress = -1; /* PDPAddress */
124 static int hf_gprscdr_dynamicAddressFlag = -1; /* DynamicAddressFlag */
125 static int hf_gprscdr_listOfTrafficVolumes = -1; /* SEQUENCE_OF_ChangeOfCharConditionV651 */
126 static int hf_gprscdr_listOfTrafficVolumes_item = -1; /* ChangeOfCharConditionV651 */
127 static int hf_gprscdr_recordOpeningTime = -1; /* TimeStamp */
128 static int hf_gprscdr_duration = -1; /* CallDuration */
129 static int hf_gprscdr_causeForRecClosing = -1; /* CauseForRecClosingV651 */
130 static int hf_gprscdr_diagnostics = -1; /* Diagnostics */
131 static int hf_gprscdr_recordSequenceNumber = -1; /* INTEGER */
132 static int hf_gprscdr_nodeID = -1; /* NodeID */
133 static int hf_gprscdr_recordExtensions = -1; /* ManagementExtensions */
134 static int hf_gprscdr_localSequenceNumber = -1; /* LocalSequenceNumber */
135 static int hf_gprscdr_apnSelectionMode = -1; /* APNSelectionMode */
136 static int hf_gprscdr_servedMSISDN = -1; /* MSISDN */
137 static int hf_gprscdr_chargingCharacteristics = -1; /* ChargingCharacteristics */
138 static int hf_gprscdr_chChSelectionMode = -1; /* ChChSelectionMode */
139 static int hf_gprscdr_iMSsignalingContext = -1; /* NULL */
140 static int hf_gprscdr_externalChargingID = -1; /* OCTET_STRING */
141 static int hf_gprscdr_sgsnPLMNIdentifier = -1; /* PLMN_Id */
142 static int hf_gprscdr_servedIMEISV = -1; /* IMEI */
143 static int hf_gprscdr_rATType = -1; /* RATType */
144 static int hf_gprscdr_mSTimeZone = -1; /* MSTimeZone */
145 static int hf_gprscdr_userLocationInformation = -1; /* T_userLocationInformation */
146 static int hf_gprscdr_cAMELChargingInformation = -1; /* OCTET_STRING */
147 static int hf_gprscdr_recordType_01 = -1; /* RecordType */
148 static int hf_gprscdr_causeForRecClosing_01 = -1; /* CauseForRecClosing */
149 static int hf_gprscdr_userLocationInformation_01 = -1; /* T_userLocationInformation_01 */
150 static int hf_gprscdr_pSFurnishChargingInformation = -1; /* PSFurnishChargingInformation */
151 static int hf_gprscdr_userLocationInformation_02 = -1; /* T_userLocationInformation_02 */
152 static int hf_gprscdr_listOfServiceData = -1; /* SEQUENCE_OF_ChangeOfServiceConditionV651 */
153 static int hf_gprscdr_listOfServiceData_item = -1; /* ChangeOfServiceConditionV651 */
154 static int hf_gprscdr_userLocationInformation_03 = -1; /* T_userLocationInformation_03 */
155 static int hf_gprscdr_listOfServiceData_01 = -1; /* SEQUENCE_OF_ChangeOfServiceConditionV750 */
156 static int hf_gprscdr_listOfServiceData_item_01 = -1; /* ChangeOfServiceConditionV750 */
157 static int hf_gprscdr_servedIMEI = -1; /* IMEI */
158 static int hf_gprscdr_sgsnAddress_01 = -1; /* GSNAddress */
159 static int hf_gprscdr_msNetworkCapability = -1; /* MSNetworkCapability */
160 static int hf_gprscdr_routingArea = -1; /* RoutingAreaCode */
161 static int hf_gprscdr_cellIdentifier = -1; /* CellId */
162 static int hf_gprscdr_ggsnAddressUsed = -1; /* GSNAddress */
163 static int hf_gprscdr_sgsnChange = -1; /* SGSNChange */
164 static int hf_gprscdr_accessPointNameOI = -1; /* AccessPointNameOI */
165 static int hf_gprscdr_cAMELInformationPDP = -1; /* CAMELInformationPDP */
166 static int hf_gprscdr_rNCUnsentDownlinkVolume = -1; /* DataVolumeGPRS */
167 static int hf_gprscdr_serviceCentre = -1; /* AddressString */
168 static int hf_gprscdr_recordingEntity = -1; /* RecordingEntity */
169 static int hf_gprscdr_locationArea = -1; /* LocationAreaCode */
170 static int hf_gprscdr_messageReference = -1; /* MessageReference */
171 static int hf_gprscdr_eventTimeStamp = -1; /* TimeStamp */
172 static int hf_gprscdr_smsResult = -1; /* SMSResult */
173 static int hf_gprscdr_destinationNumber = -1; /* SmsTpDestinationNumber */
174 static int hf_gprscdr_cAMELInformationSMS = -1; /* CAMELInformationSMS */
175 static int hf_gprscdr_qosRequested = -1; /* QoSInformation */
176 static int hf_gprscdr_qosNegotiated = -1; /* QoSInformation */
177 static int hf_gprscdr_dataVolumeGPRSUplink = -1; /* DataVolumeGPRS */
178 static int hf_gprscdr_dataVolumeGPRSDownlink = -1; /* DataVolumeGPRS */
179 static int hf_gprscdr_changeCondition = -1; /* ChangeConditionV651 */
180 static int hf_gprscdr_changeTime = -1; /* TimeStamp */
181 static int hf_gprscdr_failureHandlingContinue = -1; /* FailureHandlingContinue */
182 static int hf_gprscdr_userLocationInformation_04 = -1; /* T_userLocationInformation_04 */
183 static int hf_gprscdr_ratingGroup = -1; /* RatingGroupId */
184 static int hf_gprscdr_chargingRuleBaseName = -1; /* ChargingRuleBaseName */
185 static int hf_gprscdr_resultCode = -1; /* ResultCode */
186 static int hf_gprscdr_timeOfFirstUsage = -1; /* TimeStamp */
187 static int hf_gprscdr_timeOfLastUsage = -1; /* TimeStamp */
188 static int hf_gprscdr_timeUsage = -1; /* CallDuration */
189 static int hf_gprscdr_serviceConditionChange = -1; /* ServiceConditionChangeV651 */
190 static int hf_gprscdr_qoSInformationNeg = -1; /* QoSInformation */
191 static int hf_gprscdr_sgsn_Address = -1; /* GSNAddress */
192 static int hf_gprscdr_sGSNPLMNIdentifier = -1; /* PLMN_Id */
193 static int hf_gprscdr_datavolumeFBCUplink = -1; /* DataVolumeGPRS */
194 static int hf_gprscdr_datavolumeFBCDownlink = -1; /* DataVolumeGPRS */
195 static int hf_gprscdr_timeOfReport = -1; /* TimeStamp */
196 static int hf_gprscdr_serviceIdentifier = -1; /* ServiceIdentifier */
197 static int hf_gprscdr_serviceConditionChangeV750 = -1; /* ServiceConditionChangeV750 */
198 static int hf_gprscdr_aFRecordInformation = -1; /* SEQUENCE_OF_AFRecordInformation */
199 static int hf_gprscdr_aFRecordInformation_item = -1; /* AFRecordInformation */
200 static int hf_gprscdr_userLocationInformation_05 = -1; /* T_userLocationInformation_05 */
201 static int hf_gprscdr_eventBasedChargingInformation = -1; /* EventBasedChargingInformation */
202 static int hf_gprscdr_timeQuotaMechanism = -1; /* TimeQuotaMechanism */
203 static int hf_gprscdr_sgsnPDPRecord_01 = -1; /* SGSNPDPRecord */
204 static int hf_gprscdr_ggsnPDPRecord_01 = -1; /* GGSNPDPRecordV750 */
205 static int hf_gprscdr_sgsnSMORecord_01 = -1; /* SGSNSMORecord */
206 static int hf_gprscdr_sgsnSMTRecord_01 = -1; /* SGSNSMTRecord */
207 static int hf_gprscdr_sgsnMTLCSRecord = -1; /* SGSNMTLCSRecord */
208 static int hf_gprscdr_sgsnMOLCSRecord = -1; /* SGSNMOLCSRecord */
209 static int hf_gprscdr_sgsnNILCSRecord = -1; /* SGSNNILCSRecord */
210 static int hf_gprscdr_egsnPDPRecord_01 = -1; /* EGSNPDPRecordV750 */
211 static int hf_gprscdr_sgsnMBMSRecord = -1; /* SGSNMBMSRecord */
212 static int hf_gprscdr_ggsnMBMSRecord = -1; /* GGSNMBMSRecord */
213 static int hf_gprscdr_sGWRecord = -1; /* SGWRecord */
214 static int hf_gprscdr_pGWRecord = -1; /* PGWRecord */
215 static int hf_gprscdr_gwMBMSRecord = -1; /* GWMBMSRecord */
216 static int hf_gprscdr_tDFRecord = -1; /* TDFRecord */
217 static int hf_gprscdr_iPERecord = -1; /* IPERecord */
218 static int hf_gprscdr_ePDGRecord = -1; /* EPDGRecord */
219 static int hf_gprscdr_tWAGRecord = -1; /* TWAGRecord */
220 static int hf_gprscdr_s_GWAddress = -1; /* GSNAddress */
221 static int hf_gprscdr_servingNodeAddress = -1; /* SEQUENCE_OF_GSNAddress */
222 static int hf_gprscdr_servingNodeAddress_item = -1; /* GSNAddress */
223 static int hf_gprscdr_pdpPDNType = -1; /* PDPType */
224 static int hf_gprscdr_servedPDPPDNAddress = -1; /* PDPAddress */
225 static int hf_gprscdr_listOfTrafficVolumes_01 = -1; /* SEQUENCE_OF_ChangeOfCharCondition */
226 static int hf_gprscdr_listOfTrafficVolumes_item_01 = -1; /* ChangeOfCharCondition */
227 static int hf_gprscdr_servingNodePLMNIdentifier = -1; /* PLMN_Id */
228 static int hf_gprscdr_userLocationInformation_06 = -1; /* T_userLocationInformation_06 */
229 static int hf_gprscdr_sGWChange = -1; /* SGWChange */
230 static int hf_gprscdr_servingNodeType = -1; /* SEQUENCE_OF_ServingNodeType */
231 static int hf_gprscdr_servingNodeType_item = -1; /* ServingNodeType */
232 static int hf_gprscdr_p_GWAddressUsed = -1; /* GSNAddress */
233 static int hf_gprscdr_p_GWPLMNIdentifier = -1; /* PLMN_Id */
234 static int hf_gprscdr_startTime = -1; /* TimeStamp */
235 static int hf_gprscdr_stopTime = -1; /* TimeStamp */
236 static int hf_gprscdr_pDNConnectionChargingID = -1; /* ChargingID */
237 static int hf_gprscdr_iMSIunauthenticatedFlag = -1; /* NULL */
238 static int hf_gprscdr_userCSGInformation = -1; /* UserCSGInformation */
239 static int hf_gprscdr_servedPDPPDNAddressExt = -1; /* PDPAddress */
240 static int hf_gprscdr_lowPriorityIndicator = -1; /* NULL */
241 static int hf_gprscdr_dynamicAddressFlagExt = -1; /* DynamicAddressFlag */
242 static int hf_gprscdr_s_GWiPv6Address = -1; /* GSNAddress */
243 static int hf_gprscdr_servingNodeiPv6Address = -1; /* SEQUENCE_OF_GSNAddress */
244 static int hf_gprscdr_servingNodeiPv6Address_item = -1; /* GSNAddress */
245 static int hf_gprscdr_p_GWiPv6AddressUsed = -1; /* GSNAddress */
246 static int hf_gprscdr_retransmission = -1; /* NULL */
247 static int hf_gprscdr_userLocationInfoTime = -1; /* TimeStamp */
248 static int hf_gprscdr_cNOperatorSelectionEnt = -1; /* CNOperatorSelectionEntity */
249 static int hf_gprscdr_presenceReportingAreaInfo = -1; /* PresenceReportingAreaInfo */
250 static int hf_gprscdr_lastUserLocationInformation = -1; /* T_lastUserLocationInformation */
251 static int hf_gprscdr_lastMSTimeZone = -1; /* MSTimeZone */
252 static int hf_gprscdr_enhancedDiagnostics = -1; /* EnhancedDiagnostics */
253 static int hf_gprscdr_cPCIoTEPSOptimisationIndicator = -1; /* CPCIoTEPSOptimisationIndicator */
254 static int hf_gprscdr_uNIPDUCPOnlyFlag = -1; /* UNIPDUCPOnlyFlag */
255 static int hf_gprscdr_servingPLMNRateControl = -1; /* ServingPLMNRateControl */
256 static int hf_gprscdr_pDPPDNTypeExtension = -1; /* PDPPDNTypeExtension */
257 static int hf_gprscdr_mOExceptionDataCounter = -1; /* MOExceptionDataCounter */
258 static int hf_gprscdr_listOfRANSecondaryRATUsageReports = -1; /* SEQUENCE_OF_RANSecondaryRATUsageReport */
259 static int hf_gprscdr_listOfRANSecondaryRATUsageReports_item = -1; /* RANSecondaryRATUsageReport */
260 static int hf_gprscdr_pSCellInformation = -1; /* PSCellInformation */
261 static int hf_gprscdr_p_GWAddress = -1; /* GSNAddress */
262 static int hf_gprscdr_userLocationInformation_07 = -1; /* T_userLocationInformation_07 */
263 static int hf_gprscdr_listOfServiceData_02 = -1; /* SEQUENCE_OF_ChangeOfServiceCondition */
264 static int hf_gprscdr_listOfServiceData_item_02 = -1; /* ChangeOfServiceCondition */
265 static int hf_gprscdr_servedMNNAI = -1; /* SubscriptionID */
266 static int hf_gprscdr_served3gpp2MEID = -1; /* OCTET_STRING */
267 static int hf_gprscdr_threeGPP2UserLocationInformation = -1; /* OCTET_STRING */
268 static int hf_gprscdr_tWANUserLocationInformation = -1; /* TWANUserLocationInfo */
269 static int hf_gprscdr_ePCQoSInformation = -1; /* EPCQoSInformation */
270 static int hf_gprscdr_lastUserLocationInformation_01 = -1; /* T_lastUserLocationInformation_01 */
271 static int hf_gprscdr_nBIFOMMode = -1; /* NBIFOMMode */
272 static int hf_gprscdr_nBIFOMSupport = -1; /* NBIFOMSupport */
273 static int hf_gprscdr_uWANUserLocationInformation = -1; /* UWANUserLocationInfo */
274 static int hf_gprscdr_sGiPtPTunnellingMethod = -1; /* SGiPtPTunnellingMethod */
275 static int hf_gprscdr_aPNRateControl = -1; /* APNRateControl */
276 static int hf_gprscdr_chargingPerIPCANSessionIndicator = -1; /* ChargingPerIPCANSessionIndicator */
277 static int hf_gprscdr_threeGPPPSDataOffStatus = -1; /* ThreeGPPPSDataOffStatus */
278 static int hf_gprscdr_sCSASAddress = -1; /* SCSASAddress */
279 static int hf_gprscdr_userLocationInformation_08 = -1; /* OCTET_STRING */
280 static int hf_gprscdr_tDFAddress = -1; /* GSNAddress */
281 static int hf_gprscdr_tDFiPv6AddressUsed = -1; /* GSNAddress */
282 static int hf_gprscdr_tDFPLMNIdentifier = -1; /* PLMN_Id */
283 static int hf_gprscdr_servedFixedSubsID = -1; /* FixedSubsID */
284 static int hf_gprscdr_accessLineIdentifier = -1; /* AccessLineIdentifier */
285 static int hf_gprscdr_fixedUserLocationInformation = -1; /* FixedUserLocationInformation */
286 static int hf_gprscdr_iPEdgeAddress = -1; /* GSNAddress */
287 static int hf_gprscdr_iPCANsessionType = -1; /* PDPType */
288 static int hf_gprscdr_servedIPCANsessionAddress = -1; /* PDPAddress */
289 static int hf_gprscdr_iPEdgeOperatorIdentifier = -1; /* PLMN_Id */
290 static int hf_gprscdr_servedIPCANsessionAddressExt = -1; /* PDPAddress */
291 static int hf_gprscdr_iPEdgeiPv6AddressUsed = -1; /* GSNAddress */
292 static int hf_gprscdr_ePDGAddressUsed = -1; /* GSNAddress */
293 static int hf_gprscdr_ePDGiPv6AddressUsed = -1; /* GSNAddress */
294 static int hf_gprscdr_tWAGAddressUsed = -1; /* GSNAddress */
295 static int hf_gprscdr_tWAGiPv6AddressUsed = -1; /* GSNAddress */
296 static int hf_gprscdr_changeLocation = -1; /* SEQUENCE_OF_ChangeLocation */
297 static int hf_gprscdr_changeLocation_item = -1; /* ChangeLocation */
298 static int hf_gprscdr_cAMELInformationMM = -1; /* CAMELInformationMM */
299 static int hf_gprscdr_cellPLMNId = -1; /* PLMN_Id */
300 static int hf_gprscdr_servingNodeType_01 = -1; /* ServingNodeType */
301 static int hf_gprscdr_servingNodeAddress_01 = -1; /* GSNAddress */
302 static int hf_gprscdr_servingNodeiPv6Address_01 = -1; /* GSNAddress */
303 static int hf_gprscdr_mMEName = -1; /* DiameterIdentity */
304 static int hf_gprscdr_mMERealm = -1; /* DiameterIdentity */
305 static int hf_gprscdr_originatingAddress = -1; /* AddressString */
306 static int hf_gprscdr_lcsClientType = -1; /* LCSClientType */
307 static int hf_gprscdr_lcsClientIdentity = -1; /* LCSClientIdentity */
308 static int hf_gprscdr_locationType = -1; /* LocationType */
309 static int hf_gprscdr_lcsQos = -1; /* LCSQoSInfo */
310 static int hf_gprscdr_lcsPriority = -1; /* LCS_Priority */
311 static int hf_gprscdr_mlcNumber = -1; /* ISDN_AddressString */
312 static int hf_gprscdr_measurementDuration = -1; /* CallDuration */
313 static int hf_gprscdr_notificationToMSUser = -1; /* NotificationToMSUser */
314 static int hf_gprscdr_privacyOverride = -1; /* NULL */
315 static int hf_gprscdr_location = -1; /* LocationAreaAndCell */
316 static int hf_gprscdr_locationEstimate = -1; /* Ext_GeographicalInformation */
317 static int hf_gprscdr_positioningData = -1; /* PositioningData */
318 static int hf_gprscdr_lcsCause = -1; /* LCSCause */
319 static int hf_gprscdr_locationMethod = -1; /* LocationMethod */
320 static int hf_gprscdr_listofRAs = -1; /* SEQUENCE_OF_RAIdentity */
321 static int hf_gprscdr_listofRAs_item = -1; /* RAIdentity */
322 static int hf_gprscdr_listOfTrafficVolumes_02 = -1; /* SEQUENCE_OF_ChangeOfMBMSCondition */
323 static int hf_gprscdr_listOfTrafficVolumes_item_02 = -1; /* ChangeOfMBMSCondition */
324 static int hf_gprscdr_numberofReceivingUE = -1; /* INTEGER */
325 static int hf_gprscdr_mbmsInformation = -1; /* MBMSInformation */
326 static int hf_gprscdr_listofDownstreamNodes = -1; /* SEQUENCE_OF_GSNAddress */
327 static int hf_gprscdr_listofDownstreamNodes_item = -1; /* GSNAddress */
328 static int hf_gprscdr_mbmsGWAddress = -1; /* GSNAddress */
329 static int hf_gprscdr_commonTeid = -1; /* CTEID */
330 static int hf_gprscdr_iPMulticastSourceAddress = -1; /* PDPAddress */
331 static int hf_gprscdr_physicalAccessID = -1; /* UTF8String */
332 static int hf_gprscdr_logicalAccessID = -1; /* OCTET_STRING */
333 static int hf_gprscdr_aFChargingIdentifier = -1; /* AFChargingIdentifier */
334 static int hf_gprscdr_flows = -1; /* Flows */
335 static int hf_gprscdr_aPNRateControlUplink = -1; /* APNRateControlParameters */
336 static int hf_gprscdr_aPNRateControlDownlink = -1; /* APNRateControlParameters */
337 static int hf_gprscdr_additionalExceptionReports = -1; /* AdditionalExceptionReports */
338 static int hf_gprscdr_rateControlTimeUnit = -1; /* RateControlTimeUnit */
339 static int hf_gprscdr_rateControlMaxRate = -1; /* INTEGER */
340 static int hf_gprscdr_rateControlMaxMessageSize = -1; /* DataVolumeGPRS */
341 static int hf_gprscdr_called_Party_Address = -1; /* InvolvedParty */
342 static int hf_gprscdr_requested_Party_Address = -1; /* InvolvedParty */
343 static int hf_gprscdr_list_Of_Called_Asserted_Identity = -1; /* SEQUENCE_OF_InvolvedParty */
344 static int hf_gprscdr_list_Of_Called_Asserted_Identity_item = -1; /* InvolvedParty */
345 static int hf_gprscdr_sCFAddress = -1; /* SCFAddress */
346 static int hf_gprscdr_serviceKey = -1; /* ServiceKey */
347 static int hf_gprscdr_defaultTransactionHandling = -1; /* DefaultGPRS_Handling */
348 static int hf_gprscdr_numberOfDPEncountered = -1; /* NumberOfDPEncountered */
349 static int hf_gprscdr_levelOfCAMELService = -1; /* LevelOfCAMELService */
350 static int hf_gprscdr_freeFormatData = -1; /* FreeFormatData */
351 static int hf_gprscdr_fFDAppendIndicator = -1; /* FFDAppendIndicator */
352 static int hf_gprscdr_cAMELAccessPointNameNI = -1; /* CAMELAccessPointNameNI */
353 static int hf_gprscdr_cAMELAccessPointNameOI = -1; /* CAMELAccessPointNameOI */
354 static int hf_gprscdr_defaultSMSHandling = -1; /* DefaultSMS_Handling */
355 static int hf_gprscdr_cAMELCallingPartyNumber = -1; /* CallingNumber */
356 static int hf_gprscdr_cAMELDestinationSubscriberNumber = -1; /* SmsTpDestinationNumber */
357 static int hf_gprscdr_cAMELSMSCAddress = -1; /* AddressString */
358 static int hf_gprscdr_smsReferenceNumber = -1; /* CallReferenceNumber */
359 static int hf_gprscdr_changeCondition_01 = -1; /* ChangeCondition */
360 static int hf_gprscdr_userLocationInformation_09 = -1; /* T_userLocationInformation_08 */
361 static int hf_gprscdr_presenceReportingAreaStatus = -1; /* PresenceReportingAreaStatus */
362 static int hf_gprscdr_accessAvailabilityChangeReason = -1; /* AccessAvailabilityChangeReason */
363 static int hf_gprscdr_relatedChangeOfCharCondition = -1; /* RelatedChangeOfCharCondition */
364 static int hf_gprscdr_listOfPresenceReportingAreaInformation = -1; /* SEQUENCE_OF_PresenceReportingAreaInfo */
365 static int hf_gprscdr_listOfPresenceReportingAreaInformation_item = -1; /* PresenceReportingAreaInfo */
366 static int hf_gprscdr_dataVolumeMBMSUplink = -1; /* DataVolumeMBMS */
367 static int hf_gprscdr_dataVolumeMBMSDownlink = -1; /* DataVolumeMBMS */
368 static int hf_gprscdr_serviceConditionChange_01 = -1; /* ServiceConditionChange */
369 static int hf_gprscdr_qoSInformationNeg_01 = -1; /* EPCQoSInformation */
370 static int hf_gprscdr_userLocationInformation_10 = -1; /* T_userLocationInformation_09 */
371 static int hf_gprscdr_serviceSpecificInfo = -1; /* SEQUENCE_OF_ServiceSpecificInfo */
372 static int hf_gprscdr_serviceSpecificInfo_item = -1; /* ServiceSpecificInfo */
373 static int hf_gprscdr_sponsorIdentity = -1; /* OCTET_STRING */
374 static int hf_gprscdr_applicationServiceProviderIdentity = -1; /* OCTET_STRING */
375 static int hf_gprscdr_aDCRuleBaseName = -1; /* ADCRuleBaseName */
376 static int hf_gprscdr_relatedChangeOfServiceCondition = -1; /* RelatedChangeOfServiceCondition */
377 static int hf_gprscdr_trafficSteeringPolicyIDDownlink = -1; /* TrafficSteeringPolicyIDDownlink */
378 static int hf_gprscdr_trafficSteeringPolicyIDUplink = -1; /* TrafficSteeringPolicyIDUplink */
379 static int hf_gprscdr_voLTEInformation = -1; /* VoLTEInformation */
380 static int hf_gprscdr_routingAreaCode = -1; /* RoutingAreaCode */
381 static int hf_gprscdr_mCC_MNC_01 = -1; /* PLMN_Id */
382 static int hf_gprscdr_qCI = -1; /* INTEGER */
383 static int hf_gprscdr_maxRequestedBandwithUL = -1; /* INTEGER */
384 static int hf_gprscdr_maxRequestedBandwithDL = -1; /* INTEGER */
385 static int hf_gprscdr_guaranteedBitrateUL = -1; /* INTEGER */
386 static int hf_gprscdr_guaranteedBitrateDL = -1; /* INTEGER */
387 static int hf_gprscdr_aRP = -1; /* T_aRP */
388 static int hf_gprscdr_aPNAggregateMaxBitrateUL = -1; /* INTEGER */
389 static int hf_gprscdr_aPNAggregateMaxBitrateDL = -1; /* INTEGER */
390 static int hf_gprscdr_extendedMaxRequestedBWUL = -1; /* INTEGER */
391 static int hf_gprscdr_extendedMaxRequestedBWDL = -1; /* INTEGER */
392 static int hf_gprscdr_extendedGBRUL = -1; /* INTEGER */
393 static int hf_gprscdr_extendedGBRDL = -1; /* INTEGER */
394 static int hf_gprscdr_extendedAPNAMBRUL = -1; /* INTEGER */
395 static int hf_gprscdr_extendedAPNAMBRDL = -1; /* INTEGER */
396 static int hf_gprscdr_numberOfEvents = -1; /* INTEGER */
397 static int hf_gprscdr_eventTimeStamps = -1; /* SEQUENCE_OF_TimeStamp */
398 static int hf_gprscdr_eventTimeStamps_item = -1; /* TimeStamp */
399 static int hf_gprscdr_sSID = -1; /* OCTET_STRING */
400 static int hf_gprscdr_bSSID = -1; /* OCTET_STRING */
401 static int hf_gprscdr_mediaComponentNumber = -1; /* INTEGER */
402 static int hf_gprscdr_flowNumber = -1; /* T_flowNumber */
403 static int hf_gprscdr_flowNumber_item = -1; /* INTEGER */
404 static int hf_gprscdr_counterValue = -1; /* INTEGER */
405 static int hf_gprscdr_counterTimestamp = -1; /* TimeStamp */
406 static int hf_gprscdr_presenceReportingAreaIdentifier = -1; /* OCTET_STRING */
407 static int hf_gprscdr_presenceReportingAreaElementsList = -1; /* PresenceReportingAreaElementsList */
408 static int hf_gprscdr_presenceReportingAreaNode = -1; /* PresenceReportingAreaNode */
409 static int hf_gprscdr_pSFreeFormatData = -1; /* FreeFormatData */
410 static int hf_gprscdr_pSFFDAppendIndicator = -1; /* FFDAppendIndicator */
411 static int hf_gprscdr_dataVolumeUplink = -1; /* DataVolumeGPRS */
412 static int hf_gprscdr_dataVolumeDownlink = -1; /* DataVolumeGPRS */
413 static int hf_gprscdr_rANStartTime = -1; /* TimeStamp */
414 static int hf_gprscdr_rANEndTime = -1; /* TimeStamp */
415 static int hf_gprscdr_secondaryRATType = -1; /* SecondaryRATType */
416 static int hf_gprscdr_userLocationInformation_11 = -1; /* T_userLocationInformation_10 */
417 static int hf_gprscdr_userLocationInformation_12 = -1; /* T_userLocationInformation_11 */
418 static int hf_gprscdr_relatedServiceConditionChange = -1; /* ServiceConditionChange */
419 static int hf_gprscdr_sPLMNDLRateControlValue = -1; /* INTEGER */
420 static int hf_gprscdr_sPLMNULRateControlValue = -1; /* INTEGER */
421 static int hf_gprscdr_timeQuotaType = -1; /* TimeQuotaType */
422 static int hf_gprscdr_baseTimeInterval = -1; /* INTEGER */
423 static int hf_gprscdr_civicAddressInformation = -1; /* CivicAddressInformation */
424 static int hf_gprscdr_wLANOperatorId = -1; /* WLANOperatorId */
425 static int hf_gprscdr_cSGId = -1; /* CSGId */
426 static int hf_gprscdr_cSGAccessMode = -1; /* CSGAccessMode */
427 static int hf_gprscdr_cSGMembershipIndication = -1; /* NULL */
428 static int hf_gprscdr_uELocalIPAddress = -1; /* IPAddress */
429 static int hf_gprscdr_uDPSourcePort = -1; /* OCTET_STRING_SIZE_2 */
430 static int hf_gprscdr_tCPSourcePort = -1; /* OCTET_STRING_SIZE_2 */
431 static int hf_gprscdr_callerInformation = -1; /* SEQUENCE_OF_InvolvedParty */
432 static int hf_gprscdr_callerInformation_item = -1; /* InvolvedParty */
433 static int hf_gprscdr_calleeInformation = -1; /* CalleePartyInformation */
434 static int hf_gprscdr_wLANOperatorName = -1; /* OCTET_STRING */
435 static int hf_gprscdr_wLANPLMNId = -1; /* PLMN_Id */
436 /* named bits */
437 static int hf_gprscdr_LevelOfCAMELService_basic = -1;
438 static int hf_gprscdr_LevelOfCAMELService_callDurationSupervision = -1;
439 static int hf_gprscdr_LevelOfCAMELService_onlineCharging = -1;
440 static int hf_gprscdr_ServiceConditionChangeV651_qoSChange = -1;
441 static int hf_gprscdr_ServiceConditionChangeV651_sGSNChange = -1;
442 static int hf_gprscdr_ServiceConditionChangeV651_sGSNPLMNIDChange = -1;
443 static int hf_gprscdr_ServiceConditionChangeV651_tariffTimeSwitch = -1;
444 static int hf_gprscdr_ServiceConditionChangeV651_pDPContextRelease = -1;
445 static int hf_gprscdr_ServiceConditionChangeV651_rATChange = -1;
446 static int hf_gprscdr_ServiceConditionChangeV651_serviceIdledOut = -1;
447 static int hf_gprscdr_ServiceConditionChangeV651_qCTExpiry = -1;
448 static int hf_gprscdr_ServiceConditionChangeV651_configurationChange = -1;
449 static int hf_gprscdr_ServiceConditionChangeV651_serviceStop = -1;
450 static int hf_gprscdr_ServiceConditionChangeV651_timeThresholdReached = -1;
451 static int hf_gprscdr_ServiceConditionChangeV651_volumeThresholdReached = -1;
452 static int hf_gprscdr_ServiceConditionChangeV651_spare_bit12 = -1;
453 static int hf_gprscdr_ServiceConditionChangeV651_timeExhausted = -1;
454 static int hf_gprscdr_ServiceConditionChangeV651_volumeExhausted = -1;
455 static int hf_gprscdr_ServiceConditionChangeV651_timeout = -1;
456 static int hf_gprscdr_ServiceConditionChangeV651_returnRequested = -1;
457 static int hf_gprscdr_ServiceConditionChangeV651_reauthorisationRequest = -1;
458 static int hf_gprscdr_ServiceConditionChangeV651_continueOngoingSession = -1;
459 static int hf_gprscdr_ServiceConditionChangeV651_retryAndTerminateOngoingSession = -1;
460 static int hf_gprscdr_ServiceConditionChangeV651_terminateOngoingSession = -1;
461 static int hf_gprscdr_ServiceConditionChangeV750_qoSChange = -1;
462 static int hf_gprscdr_ServiceConditionChangeV750_sGSNChange = -1;
463 static int hf_gprscdr_ServiceConditionChangeV750_sGSNPLMNIDChange = -1;
464 static int hf_gprscdr_ServiceConditionChangeV750_tariffTimeSwitch = -1;
465 static int hf_gprscdr_ServiceConditionChangeV750_pDPContextRelease = -1;
466 static int hf_gprscdr_ServiceConditionChangeV750_rATChange = -1;
467 static int hf_gprscdr_ServiceConditionChangeV750_serviceIdledOut = -1;
468 static int hf_gprscdr_ServiceConditionChangeV750_reserved = -1;
469 static int hf_gprscdr_ServiceConditionChangeV750_configurationChange = -1;
470 static int hf_gprscdr_ServiceConditionChangeV750_serviceStop = -1;
471 static int hf_gprscdr_ServiceConditionChangeV750_dCCATimeThresholdReached = -1;
472 static int hf_gprscdr_ServiceConditionChangeV750_dCCAVolumeThresholdReached = -1;
473 static int hf_gprscdr_ServiceConditionChangeV750_dCCAServiceSpecificUnitThresholdReached = -1;
474 static int hf_gprscdr_ServiceConditionChangeV750_dCCATimeExhausted = -1;
475 static int hf_gprscdr_ServiceConditionChangeV750_dCCAVolumeExhausted = -1;
476 static int hf_gprscdr_ServiceConditionChangeV750_dCCAValidityTimeout = -1;
477 static int hf_gprscdr_ServiceConditionChangeV750_reserved2 = -1;
478 static int hf_gprscdr_ServiceConditionChangeV750_dCCAReauthorisationRequest = -1;
479 static int hf_gprscdr_ServiceConditionChangeV750_dCCAContinueOngoingSession = -1;
480 static int hf_gprscdr_ServiceConditionChangeV750_dCCARetryAndTerminateOngoingSession = -1;
481 static int hf_gprscdr_ServiceConditionChangeV750_dCCATerminateOngoingSession = -1;
482 static int hf_gprscdr_ServiceConditionChangeV750_cGI_SAIChange = -1;
483 static int hf_gprscdr_ServiceConditionChangeV750_rAIChange = -1;
484 static int hf_gprscdr_ServiceConditionChangeV750_dCCAServiceSpecificUnitExhausted = -1;
485 static int hf_gprscdr_ServiceConditionChangeV750_recordClosure = -1;
486 static int hf_gprscdr_ServiceConditionChangeV750_timeLimit = -1;
487 static int hf_gprscdr_ServiceConditionChangeV750_volumeLimit = -1;
488 static int hf_gprscdr_ServiceConditionChangeV750_serviceSpecificUnitLimit = -1;
489 static int hf_gprscdr_ServiceConditionChangeV750_envelopeClosure = -1;
490 static int hf_gprscdr_PresenceReportingAreaNode_oCS = -1;
491 static int hf_gprscdr_PresenceReportingAreaNode_pCRF = -1;
492 static int hf_gprscdr_ServiceConditionChange_qoSChange = -1;
493 static int hf_gprscdr_ServiceConditionChange_sGSNChange = -1;
494 static int hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange = -1;
495 static int hf_gprscdr_ServiceConditionChange_tariffTimeSwitch = -1;
496 static int hf_gprscdr_ServiceConditionChange_pDPContextRelease = -1;
497 static int hf_gprscdr_ServiceConditionChange_rATChange = -1;
498 static int hf_gprscdr_ServiceConditionChange_serviceIdledOut = -1;
499 static int hf_gprscdr_ServiceConditionChange_reserved = -1;
500 static int hf_gprscdr_ServiceConditionChange_configurationChange = -1;
501 static int hf_gprscdr_ServiceConditionChange_serviceStop = -1;
502 static int hf_gprscdr_ServiceConditionChange_dCCATimeThresholdReached = -1;
503 static int hf_gprscdr_ServiceConditionChange_dCCAVolumeThresholdReached = -1;
504 static int hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitThresholdReached = -1;
505 static int hf_gprscdr_ServiceConditionChange_dCCATimeExhausted = -1;
506 static int hf_gprscdr_ServiceConditionChange_dCCAVolumeExhausted = -1;
507 static int hf_gprscdr_ServiceConditionChange_dCCAValidityTimeout = -1;
508 static int hf_gprscdr_ServiceConditionChange_reserved1 = -1;
509 static int hf_gprscdr_ServiceConditionChange_dCCAReauthorisationRequest = -1;
510 static int hf_gprscdr_ServiceConditionChange_dCCAContinueOngoingSession = -1;
511 static int hf_gprscdr_ServiceConditionChange_dCCARetryAndTerminateOngoingSession = -1;
512 static int hf_gprscdr_ServiceConditionChange_dCCATerminateOngoingSession = -1;
513 static int hf_gprscdr_ServiceConditionChange_cGI_SAIChange = -1;
514 static int hf_gprscdr_ServiceConditionChange_rAIChange = -1;
515 static int hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitExhausted = -1;
516 static int hf_gprscdr_ServiceConditionChange_recordClosure = -1;
517 static int hf_gprscdr_ServiceConditionChange_timeLimit = -1;
518 static int hf_gprscdr_ServiceConditionChange_volumeLimit = -1;
519 static int hf_gprscdr_ServiceConditionChange_serviceSpecificUnitLimit = -1;
520 static int hf_gprscdr_ServiceConditionChange_envelopeClosure = -1;
521 static int hf_gprscdr_ServiceConditionChange_eCGIChange = -1;
522 static int hf_gprscdr_ServiceConditionChange_tAIChange = -1;
523 static int hf_gprscdr_ServiceConditionChange_userLocationChange = -1;
524 static int hf_gprscdr_ServiceConditionChange_userCSGInformationChange = -1;
525 static int hf_gprscdr_ServiceConditionChange_presenceInPRAChange = -1;
526 static int hf_gprscdr_ServiceConditionChange_accessChangeOfSDF = -1;
527 static int hf_gprscdr_ServiceConditionChange_indirectServiceConditionChange = -1;
528 static int hf_gprscdr_ServiceConditionChange_servingPLMNRateControlChange = -1;
529 static int hf_gprscdr_ServiceConditionChange_aPNRateControlChange = -1;
530
531 /*--- End of included file: packet-gprscdr-hf.c ---*/
532 #line 36 "./asn1/gprscdr/packet-gprscdr-template.c"
533
534 static int ett_gprscdr = -1;
535 static int ett_gprscdr_timestamp = -1;
536 static int ett_gprscdr_plmn_id = -1;
537 static int ett_gprscdr_pdp_pdn_type = -1;
538 static int ett_gprscdr_eps_qos_arp = -1;
539 static int ett_gprscdr_managementextension_information = -1;
540 static int ett_gprscdr_userlocationinformation = -1;
541
542 /*--- Included file: packet-gprscdr-ett.c ---*/
543 #line 1 "./asn1/gprscdr/packet-gprscdr-ett.c"
544 static gint ett_gprscdr_Diagnostics = -1;
545 static gint ett_gprscdr_Ecgi = -1;
546 static gint ett_gprscdr_EnhancedDiagnostics = -1;
547 static gint ett_gprscdr_SEQUENCE_OF_RANNASCause = -1;
548 static gint ett_gprscdr_InvolvedParty = -1;
549 static gint ett_gprscdr_IPAddress = -1;
550 static gint ett_gprscdr_IPBinaryAddress = -1;
551 static gint ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength = -1;
552 static gint ett_gprscdr_IPBinV6AddressWithPrefixLength = -1;
553 static gint ett_gprscdr_IPTextRepresentedAddress = -1;
554 static gint ett_gprscdr_LCSClientIdentity = -1;
555 static gint ett_gprscdr_LevelOfCAMELService = -1;
556 static gint ett_gprscdr_LocationAreaAndCell = -1;
557 static gint ett_gprscdr_ManagementExtensions = -1;
558 static gint ett_gprscdr_MBMSInformation = -1;
559 static gint ett_gprscdr_Ncgi = -1;
560 static gint ett_gprscdr_PDPAddress = -1;
561 static gint ett_gprscdr_PSCellInformation = -1;
562 static gint ett_gprscdr_SCSASAddress = -1;
563 static gint ett_gprscdr_ServiceSpecificInfo = -1;
564 static gint ett_gprscdr_SubscriptionID = -1;
565 static gint ett_gprscdr_ManagementExtension = -1;
566 static gint ett_gprscdr_GPRSCallEventRecord = -1;
567 static gint ett_gprscdr_GGSNPDPRecord = -1;
568 static gint ett_gprscdr_SEQUENCE_OF_GSNAddress = -1;
569 static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 = -1;
570 static gint ett_gprscdr_GGSNPDPRecordV750 = -1;
571 static gint ett_gprscdr_EGSNPDPRecord = -1;
572 static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651 = -1;
573 static gint ett_gprscdr_EGSNPDPRecordV750 = -1;
574 static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750 = -1;
575 static gint ett_gprscdr_SGSNPDPRecordV651 = -1;
576 static gint ett_gprscdr_SGSNSMORecordV651 = -1;
577 static gint ett_gprscdr_SGSNSMTRecordV651 = -1;
578 static gint ett_gprscdr_ChangeOfCharConditionV651 = -1;
579 static gint ett_gprscdr_ChangeOfServiceConditionV651 = -1;
580 static gint ett_gprscdr_ChangeOfServiceConditionV750 = -1;
581 static gint ett_gprscdr_SEQUENCE_OF_AFRecordInformation = -1;
582 static gint ett_gprscdr_ServiceConditionChangeV651 = -1;
583 static gint ett_gprscdr_ServiceConditionChangeV750 = -1;
584 static gint ett_gprscdr_GPRSRecord = -1;
585 static gint ett_gprscdr_SGWRecord = -1;
586 static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition = -1;
587 static gint ett_gprscdr_SEQUENCE_OF_ServingNodeType = -1;
588 static gint ett_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport = -1;
589 static gint ett_gprscdr_PGWRecord = -1;
590 static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition = -1;
591 static gint ett_gprscdr_TDFRecord = -1;
592 static gint ett_gprscdr_IPERecord = -1;
593 static gint ett_gprscdr_EPDGRecord = -1;
594 static gint ett_gprscdr_TWAGRecord = -1;
595 static gint ett_gprscdr_SGSNMMRecord = -1;
596 static gint ett_gprscdr_SEQUENCE_OF_ChangeLocation = -1;
597 static gint ett_gprscdr_SGSNPDPRecord = -1;
598 static gint ett_gprscdr_SGSNSMORecord = -1;
599 static gint ett_gprscdr_SGSNSMTRecord = -1;
600 static gint ett_gprscdr_SGSNMTLCSRecord = -1;
601 static gint ett_gprscdr_SGSNMOLCSRecord = -1;
602 static gint ett_gprscdr_SGSNNILCSRecord = -1;
603 static gint ett_gprscdr_SGSNMBMSRecord = -1;
604 static gint ett_gprscdr_SEQUENCE_OF_RAIdentity = -1;
605 static gint ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition = -1;
606 static gint ett_gprscdr_GGSNMBMSRecord = -1;
607 static gint ett_gprscdr_GWMBMSRecord = -1;
608 static gint ett_gprscdr_AccessLineIdentifier = -1;
609 static gint ett_gprscdr_AFRecordInformation = -1;
610 static gint ett_gprscdr_APNRateControl = -1;
611 static gint ett_gprscdr_APNRateControlParameters = -1;
612 static gint ett_gprscdr_CalleePartyInformation = -1;
613 static gint ett_gprscdr_SEQUENCE_OF_InvolvedParty = -1;
614 static gint ett_gprscdr_CAMELInformationMM = -1;
615 static gint ett_gprscdr_CAMELInformationPDP = -1;
616 static gint ett_gprscdr_CAMELInformationSMS = -1;
617 static gint ett_gprscdr_ChangeOfCharCondition = -1;
618 static gint ett_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo = -1;
619 static gint ett_gprscdr_ChangeOfMBMSCondition = -1;
620 static gint ett_gprscdr_ChangeOfServiceCondition = -1;
621 static gint ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo = -1;
622 static gint ett_gprscdr_ChangeLocation = -1;
623 static gint ett_gprscdr_EPCQoSInformation = -1;
624 static gint ett_gprscdr_EventBasedChargingInformation = -1;
625 static gint ett_gprscdr_SEQUENCE_OF_TimeStamp = -1;
626 static gint ett_gprscdr_FixedUserLocationInformation = -1;
627 static gint ett_gprscdr_Flows = -1;
628 static gint ett_gprscdr_T_flowNumber = -1;
629 static gint ett_gprscdr_MOExceptionDataCounter = -1;
630 static gint ett_gprscdr_PresenceReportingAreaInfo = -1;
631 static gint ett_gprscdr_PresenceReportingAreaNode = -1;
632 static gint ett_gprscdr_PSFurnishChargingInformation = -1;
633 static gint ett_gprscdr_RANSecondaryRATUsageReport = -1;
634 static gint ett_gprscdr_RelatedChangeOfCharCondition = -1;
635 static gint ett_gprscdr_RelatedChangeOfServiceCondition = -1;
636 static gint ett_gprscdr_ServiceConditionChange = -1;
637 static gint ett_gprscdr_ServingPLMNRateControl = -1;
638 static gint ett_gprscdr_TimeQuotaMechanism = -1;
639 static gint ett_gprscdr_TWANUserLocationInfo = -1;
640 static gint ett_gprscdr_UserCSGInformation = -1;
641 static gint ett_gprscdr_UWANUserLocationInfo = -1;
642 static gint ett_gprscdr_VoLTEInformation = -1;
643 static gint ett_gprscdr_WLANOperatorId = -1;
644
645 /*--- End of included file: packet-gprscdr-ett.c ---*/
646 #line 45 "./asn1/gprscdr/packet-gprscdr-template.c"
647
648 static expert_field ei_gprscdr_not_dissected = EI_INIT;
649 static expert_field ei_gprscdr_choice_not_found = EI_INIT;
650
651 /* Global variables */
652 static const char *obj_id = NULL;
653
654 static const value_string gprscdr_daylight_saving_time_vals[] = {
655 {0, "No adjustment"},
656 {1, "+1 hour adjustment for Daylight Saving Time"},
657 {2, "+2 hours adjustment for Daylight Saving Time"},
658 {3, "Reserved"},
659 {0, NULL}
660 };
661
662 /* 3GPP-RAT-Type
663 * 3GPP TS 29.061
664 */
665 static const value_string gprscdr_rat_type_vals[] = {
666 {0, "Reserved"},
667 {1, "UTRAN"},
668 {2, "GERAN"},
669 {3, "WLAN"},
670 {4, "GAN"},
671 {5, "HSPA Evolution"},
672 {6, "EUTRAN"},
673 {7, "Virtual"},
674 {8, "EUTRAN-NB-IoT"},
675 {9, "LTE-M"},
676 {10, "NR"},
677 /* 11-100 Spare for future use TS 29.061 */
678 {101, "IEEE 802.16e"},
679 {102, "3GPP2 eHRPD"},
680 {103, "3GPP2 HRPD"},
681 /* 104-255 Spare for future use TS 29.061 */
682 {0, NULL}
683 };
684
685 static int
dissect_gprscdr_uli(tvbuff_t * tvb _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int type)686 dissect_gprscdr_uli(tvbuff_t *tvb _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int type) {
687 proto_tree *ext_tree_uli;
688 guint length;
689
690 length = tvb_reported_length(tvb);
691 ext_tree_uli = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_userlocationinformation, NULL, "UserLocationInformation");
692
693 switch (type) {
694 case 1:
695 /* For GGSN/EGGSN-CDR,
696 * this octet string is a 1:1 copy of the contents (i.e. starting with octet 4) of the
697 * User Location Information (ULI) information element specified in 29.060, ch7.7.51.
698 */
699 dissect_gtp_uli(tvb, 0, actx->pinfo, ext_tree_uli, NULL);
700 break;
701 case 2:
702 /* For SGW/PGW-CDR,
703 * this octet string is a 1:1 copy of the contents (i.e. starting with octet 5) of the
704 * User Location Information (ULI) information element specified in 29.274, ch8.21.
705 */
706 dissect_gtpv2_uli(tvb, actx->pinfo, ext_tree_uli, NULL, length, 0, 0, NULL);
707 break;
708 default:
709 proto_tree_add_expert(ext_tree_uli, actx->pinfo, &ei_gprscdr_not_dissected, tvb, 0, length);
710 break;
711 }
712
713 return length;
714 }
715
716
717 /*--- Included file: packet-gprscdr-fn.c ---*/
718 #line 1 "./asn1/gprscdr/packet-gprscdr-fn.c"
719
720
721 static int
dissect_gprscdr_BCDDirectoryNumber(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)722 dissect_gprscdr_BCDDirectoryNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
723 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
724 NULL);
725
726 return offset;
727 }
728
729
730
731 static int
dissect_gprscdr_CallDuration(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)732 dissect_gprscdr_CallDuration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
733 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
734 NULL);
735
736 return offset;
737 }
738
739
740 static const value_string gprscdr_CallEventRecordType_vals[] = {
741 { 0, "moCallRecord" },
742 { 1, "mtCallRecord" },
743 { 2, "roamingRecord" },
744 { 3, "incGatewayRecord" },
745 { 4, "outGatewayRecord" },
746 { 5, "transitCallRecord" },
747 { 6, "moSMSRecord" },
748 { 7, "mtSMSRecord" },
749 { 8, "moSMSIWRecord" },
750 { 9, "mtSMSGWRecord" },
751 { 10, "ssActionRecord" },
752 { 11, "hlrIntRecord" },
753 { 12, "locUpdateHLRRecord" },
754 { 13, "locUpdateVLRRecord" },
755 { 14, "commonEquipRecord" },
756 { 15, "moTraceRecord" },
757 { 16, "mtTraceRecord" },
758 { 17, "termCAMELRecord" },
759 { 18, "sgsnPDPRecord" },
760 { 19, "ggsnPDPRecord" },
761 { 20, "sgsnMMRecord" },
762 { 21, "sgsnSMORecord" },
763 { 22, "sgsnSMTRecord" },
764 { 23, "mtLCSRecord" },
765 { 24, "moLCSRecord" },
766 { 25, "niLCSRecord" },
767 { 26, "sgsnMtLCSRecord" },
768 { 27, "sgsnMoLCSRecord" },
769 { 28, "sgsnNiLCSRecord" },
770 { 29, "mmO1SRecord" },
771 { 30, "mmO4FRqRecord" },
772 { 31, "mmO4FRsRecord" },
773 { 32, "mmO4DRecord" },
774 { 33, "mmO1DRecord" },
775 { 34, "mmO4RRecord" },
776 { 35, "mmO1RRecord" },
777 { 36, "mmOMDRecord" },
778 { 37, "mmR4FRecord" },
779 { 38, "mmR1NRqRecord" },
780 { 39, "mmR1NRsRecord" },
781 { 40, "mmR1RtRecord" },
782 { 42, "mmR1AFRecord" },
783 { 43, "mmR4DRqRecord" },
784 { 44, "mmR4DRsRecord" },
785 { 45, "mmR1RRRecord" },
786 { 46, "mmR4RRqRecord" },
787 { 47, "mmR4RRsRecord" },
788 { 48, "mmRMDRecord" },
789 { 49, "mmFRecord" },
790 { 50, "mmBx1SRecord" },
791 { 51, "mmBx1VRecord" },
792 { 52, "mmBx1URecord" },
793 { 53, "mmBx1DRecord" },
794 { 54, "mM7SRecord" },
795 { 55, "mM7DRqRecord" },
796 { 56, "mM7DRsRecord" },
797 { 57, "mM7CRecord" },
798 { 58, "mM7RRecord" },
799 { 59, "mM7DRRqRecord" },
800 { 60, "mM7DRRsRecord" },
801 { 61, "mM7RRqRecord" },
802 { 62, "mM7RRsRecord" },
803 { 63, "s-CSCFRecord" },
804 { 64, "p-CSCFRecord" },
805 { 65, "i-CSCFRecord" },
806 { 66, "mRFCRecord" },
807 { 67, "mGCFRecord" },
808 { 68, "bGCFRecord" },
809 { 69, "aSRecord" },
810 { 70, "egsnPDPRecord" },
811 { 71, "lCSGMORecord" },
812 { 72, "lCSRGMTRecord" },
813 { 73, "lCSHGMTRecord" },
814 { 74, "lCSVGMTRecord" },
815 { 75, "lCSGNIRecord" },
816 { 76, "sgsnMBMSRecord" },
817 { 77, "ggsnMBMSRecord" },
818 { 78, "subBMSCRecord" },
819 { 79, "contentBMSCRecord" },
820 { 80, "pPFRecord" },
821 { 81, "cPFRecord" },
822 { 0, NULL }
823 };
824
825
826 static int
dissect_gprscdr_CallEventRecordType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)827 dissect_gprscdr_CallEventRecordType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
828 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
829 NULL);
830
831 return offset;
832 }
833
834
835
836 static int
dissect_gprscdr_CallingNumber(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)837 dissect_gprscdr_CallingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
838 offset = dissect_gprscdr_BCDDirectoryNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
839
840 return offset;
841 }
842
843
844
845 static int
dissect_gprscdr_CellId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)846 dissect_gprscdr_CellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
847 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
848 NULL);
849
850 return offset;
851 }
852
853
854 static const value_string gprscdr_CauseForRecClosing_vals[] = {
855 { 0, "normalRelease" },
856 { 1, "partialRecord" },
857 { 4, "abnormalRelease" },
858 { 5, "cAMELInitCallRelease" },
859 { 16, "volumeLimit" },
860 { 17, "timeLimit" },
861 { 18, "servingNodeChange" },
862 { 19, "maxChangeCond" },
863 { 20, "managementIntervention" },
864 { 21, "intraSGSNIntersystemChange" },
865 { 22, "rATChange" },
866 { 23, "mSTimeZoneChange" },
867 { 24, "sGSNPLMNIDChange" },
868 { 25, "sGWChange" },
869 { 26, "aPNAMBRChange" },
870 { 27, "mOExceptionDataCounterReceipt" },
871 { 52, "unauthorizedRequestingNetwork" },
872 { 53, "unauthorizedLCSClient" },
873 { 54, "positionMethodFailure" },
874 { 58, "unknownOrUnreachableLCSClient" },
875 { 59, "listofDownstreamNodeChange" },
876 { 0, NULL }
877 };
878
879
880 static int
dissect_gprscdr_CauseForRecClosing(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)881 dissect_gprscdr_CauseForRecClosing(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
882 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
883 NULL);
884
885 return offset;
886 }
887
888
889
890 static int
dissect_gprscdr_ChargingID(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)891 dissect_gprscdr_ChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
892 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
893 NULL);
894
895 return offset;
896 }
897
898
899
900 static int
dissect_gprscdr_CivicAddressInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)901 dissect_gprscdr_CivicAddressInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
902 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
903 NULL);
904
905 return offset;
906 }
907
908
909 static const value_string gprscdr_CNIPMulticastDistribution_vals[] = {
910 { 0, "nO-IP-MULTICAST" },
911 { 1, "iP-MULTICAST" },
912 { 0, NULL }
913 };
914
915
916 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_)917 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_) {
918 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
919 NULL);
920
921 return offset;
922 }
923
924
925
926 static int
dissect_gprscdr_DynamicAddressFlag(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)927 dissect_gprscdr_DynamicAddressFlag(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
928 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
929
930 return offset;
931 }
932
933
934
935 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_)936 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_) {
937 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
938 NULL);
939
940 return offset;
941 }
942
943
944
945 static int
dissect_gprscdr_T_identifier(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)946 dissect_gprscdr_T_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
947 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
948
949 return offset;
950 }
951
952
953
954 static int
dissect_gprscdr_BOOLEAN(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)955 dissect_gprscdr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
956 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
957
958 return offset;
959 }
960
961
962
963 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_)964 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_) {
965 #line 54 "./asn1/gprscdr/gprscdr.cnf"
966
967 proto_tree *ext_tree;
968 ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gprscdr_managementextension_information, NULL, "Information");
969 if (obj_id){
970 offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, ext_tree, NULL);
971 }else{
972 proto_tree_add_expert(ext_tree, actx->pinfo, &ei_gprscdr_not_dissected, tvb, offset, -1);
973 }
974
975
976
977 return offset;
978 }
979
980
981 static const ber_sequence_t ManagementExtension_sequence[] = {
982 { &hf_gprscdr_identifier , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gprscdr_T_identifier },
983 { &hf_gprscdr_significance, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_BOOLEAN },
984 { &hf_gprscdr_information , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_T_information },
985 { NULL, 0, 0, 0, NULL }
986 };
987
988 static int
dissect_gprscdr_ManagementExtension(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)989 dissect_gprscdr_ManagementExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
990 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
991 ManagementExtension_sequence, hf_index, ett_gprscdr_ManagementExtension);
992
993 return offset;
994 }
995
996
997 static const value_string gprscdr_Diagnostics_vals[] = {
998 { 0, "gsm0408Cause" },
999 { 1, "gsm0902MapErrorValue" },
1000 { 2, "itu-tQ767Cause" },
1001 { 3, "networkSpecificCause" },
1002 { 4, "manufacturerSpecificCause" },
1003 { 5, "positionMethodFailureCause" },
1004 { 6, "unauthorizedLCSClientCause" },
1005 { 7, "diameterResultCodeAndExperimentalResult" },
1006 { 0, NULL }
1007 };
1008
1009 static const ber_choice_t Diagnostics_choice[] = {
1010 { 0, &hf_gprscdr_gsm0408Cause, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
1011 { 1, &hf_gprscdr_gsm0902MapErrorValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
1012 { 2, &hf_gprscdr_itu_tQ767Cause, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
1013 { 3, &hf_gprscdr_networkSpecificCause, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtension },
1014 { 4, &hf_gprscdr_manufacturerSpecificCause, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtension },
1015 { 5, &hf_gprscdr_positionMethodFailureCause, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
1016 { 6, &hf_gprscdr_unauthorizedLCSClientCause, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
1017 { 7, &hf_gprscdr_diameterResultCodeAndExperimentalResult, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
1018 { 0, NULL, 0, 0, 0, NULL }
1019 };
1020
1021 static int
dissect_gprscdr_Diagnostics(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1022 dissect_gprscdr_Diagnostics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1023 offset = dissect_ber_choice(actx, tree, tvb, offset,
1024 Diagnostics_choice, hf_index, ett_gprscdr_Diagnostics,
1025 NULL);
1026
1027 return offset;
1028 }
1029
1030
1031
1032 static int
dissect_gprscdr_DiameterIdentity(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1033 dissect_gprscdr_DiameterIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1034 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1035 NULL);
1036
1037 return offset;
1038 }
1039
1040
1041
1042 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_)1043 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_) {
1044 #line 130 "./asn1/gprscdr/gprscdr.cnf"
1045 tvbuff_t *parameter_tvb;
1046 proto_tree *subtree;
1047
1048 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1049 ¶meter_tvb);
1050
1051
1052 if (!parameter_tvb)
1053 return offset;
1054
1055 subtree = proto_item_add_subtree(actx->created_item, ett_gprscdr_plmn_id);
1056 dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, TRUE);
1057
1058
1059
1060 return offset;
1061 }
1062
1063
1064
1065 static int
dissect_gprscdr_EutraCellId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1066 dissect_gprscdr_EutraCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1067 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
1068 actx, tree, tvb, offset, hf_index,
1069 NULL);
1070
1071 return offset;
1072 }
1073
1074
1075
1076 static int
dissect_gprscdr_Nid(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1077 dissect_gprscdr_Nid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1078 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
1079 actx, tree, tvb, offset, hf_index,
1080 NULL);
1081
1082 return offset;
1083 }
1084
1085
1086 static const ber_sequence_t Ecgi_sequence[] = {
1087 { &hf_gprscdr_plmnId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
1088 { &hf_gprscdr_eutraCellId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_EutraCellId },
1089 { &hf_gprscdr_nid , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_Nid },
1090 { NULL, 0, 0, 0, NULL }
1091 };
1092
1093 static int
dissect_gprscdr_Ecgi(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1094 dissect_gprscdr_Ecgi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1095 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1096 Ecgi_sequence, hf_index, ett_gprscdr_Ecgi);
1097
1098 return offset;
1099 }
1100
1101
1102
1103 static int
dissect_gprscdr_RANNASCause(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1104 dissect_gprscdr_RANNASCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1105 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1106 NULL);
1107
1108 return offset;
1109 }
1110
1111
1112 static const ber_sequence_t SEQUENCE_OF_RANNASCause_sequence_of[1] = {
1113 { &hf_gprscdr_rANNASCause_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gprscdr_RANNASCause },
1114 };
1115
1116 static int
dissect_gprscdr_SEQUENCE_OF_RANNASCause(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1117 dissect_gprscdr_SEQUENCE_OF_RANNASCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1118 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1119 SEQUENCE_OF_RANNASCause_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_RANNASCause);
1120
1121 return offset;
1122 }
1123
1124
1125 static const ber_sequence_t EnhancedDiagnostics_sequence[] = {
1126 { &hf_gprscdr_rANNASCause , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_RANNASCause },
1127 { NULL, 0, 0, 0, NULL }
1128 };
1129
1130 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_)1131 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_) {
1132 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1133 EnhancedDiagnostics_sequence, hf_index, ett_gprscdr_EnhancedDiagnostics);
1134
1135 return offset;
1136 }
1137
1138
1139
1140 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_)1141 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_) {
1142 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1143 NULL);
1144
1145 return offset;
1146 }
1147
1148
1149
1150 static int
dissect_gprscdr_IPBinV6Address(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1151 dissect_gprscdr_IPBinV6Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1152 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1153 NULL);
1154
1155 return offset;
1156 }
1157
1158
1159
1160 static int
dissect_gprscdr_PDPAddressPrefixLength(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1161 dissect_gprscdr_PDPAddressPrefixLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1162 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1163 NULL);
1164
1165 return offset;
1166 }
1167
1168
1169 static const ber_sequence_t IPBinV6AddressWithPrefixLength_sequence[] = {
1170 { &hf_gprscdr_iPBinV6Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gprscdr_IPBinV6Address },
1171 { &hf_gprscdr_pDPAddressPrefixLength, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprscdr_PDPAddressPrefixLength },
1172 { NULL, 0, 0, 0, NULL }
1173 };
1174
1175 static int
dissect_gprscdr_IPBinV6AddressWithPrefixLength(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1176 dissect_gprscdr_IPBinV6AddressWithPrefixLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1177 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1178 IPBinV6AddressWithPrefixLength_sequence, hf_index, ett_gprscdr_IPBinV6AddressWithPrefixLength);
1179
1180 return offset;
1181 }
1182
1183
1184 static const value_string gprscdr_IPBinV6AddressWithOrWithoutPrefixLength_vals[] = {
1185 { 1, "iPBinV6Address" },
1186 { 4, "iPBinV6AddressWithPrefix" },
1187 { 0, NULL }
1188 };
1189
1190 static const ber_choice_t IPBinV6AddressWithOrWithoutPrefixLength_choice[] = {
1191 { 1, &hf_gprscdr_iPBinV6Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPBinV6Address },
1192 { 4, &hf_gprscdr_iPBinV6AddressWithPrefix, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPBinV6AddressWithPrefixLength },
1193 { 0, NULL, 0, 0, 0, NULL }
1194 };
1195
1196 static int
dissect_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1197 dissect_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1198 offset = dissect_ber_choice(actx, tree, tvb, offset,
1199 IPBinV6AddressWithOrWithoutPrefixLength_choice, hf_index, ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength,
1200 NULL);
1201
1202 return offset;
1203 }
1204
1205
1206 static const value_string gprscdr_IPBinaryAddress_vals[] = {
1207 { 0, "iPBinV4Address" },
1208 { 1, "iPBinV6Address" },
1209 { 0, NULL }
1210 };
1211
1212 static const ber_choice_t IPBinaryAddress_choice[] = {
1213 { 0, &hf_gprscdr_iPBinV4Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPBinV4Address },
1214 { 1, &hf_gprscdr_iPBinV6Address_choice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength },
1215 { 0, NULL, 0, 0, 0, NULL }
1216 };
1217
1218 static int
dissect_gprscdr_IPBinaryAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1219 dissect_gprscdr_IPBinaryAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1220 offset = dissect_ber_choice(actx, tree, tvb, offset,
1221 IPBinaryAddress_choice, hf_index, ett_gprscdr_IPBinaryAddress,
1222 NULL);
1223
1224 return offset;
1225 }
1226
1227
1228
1229 static int
dissect_gprscdr_IA5String_SIZE_7_15(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1230 dissect_gprscdr_IA5String_SIZE_7_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1231 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1232 actx, tree, tvb, offset, hf_index,
1233 NULL);
1234
1235 return offset;
1236 }
1237
1238
1239
1240 static int
dissect_gprscdr_IA5String_SIZE_15_45(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1241 dissect_gprscdr_IA5String_SIZE_15_45(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1242 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1243 actx, tree, tvb, offset, hf_index,
1244 NULL);
1245
1246 return offset;
1247 }
1248
1249
1250 static const value_string gprscdr_IPTextRepresentedAddress_vals[] = {
1251 { 2, "iPTextV4Address" },
1252 { 3, "iPTextV6Address" },
1253 { 0, NULL }
1254 };
1255
1256 static const ber_choice_t IPTextRepresentedAddress_choice[] = {
1257 { 2, &hf_gprscdr_iPTextV4Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_IA5String_SIZE_7_15 },
1258 { 3, &hf_gprscdr_iPTextV6Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_IA5String_SIZE_15_45 },
1259 { 0, NULL, 0, 0, 0, NULL }
1260 };
1261
1262 static int
dissect_gprscdr_IPTextRepresentedAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1263 dissect_gprscdr_IPTextRepresentedAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1264 offset = dissect_ber_choice(actx, tree, tvb, offset,
1265 IPTextRepresentedAddress_choice, hf_index, ett_gprscdr_IPTextRepresentedAddress,
1266 NULL);
1267
1268 return offset;
1269 }
1270
1271
1272 static const value_string gprscdr_IPAddress_vals[] = {
1273 { -1/*choice*/, "iPBinaryAddress" },
1274 { -1/*choice*/, "iPTextRepresentedAddress" },
1275 { 0, NULL }
1276 };
1277
1278 static const ber_choice_t IPAddress_choice[] = {
1279 { -1/*choice*/, &hf_gprscdr_iPBinaryAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gprscdr_IPBinaryAddress },
1280 { -1/*choice*/, &hf_gprscdr_iPTextRepresentedAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gprscdr_IPTextRepresentedAddress },
1281 { 0, NULL, 0, 0, 0, NULL }
1282 };
1283
1284 static int
dissect_gprscdr_IPAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1285 dissect_gprscdr_IPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1286 offset = dissect_ber_choice(actx, tree, tvb, offset,
1287 IPAddress_choice, hf_index, ett_gprscdr_IPAddress,
1288 NULL);
1289
1290 return offset;
1291 }
1292
1293
1294
1295 static int
dissect_gprscdr_GSNAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1296 dissect_gprscdr_GSNAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1297 offset = dissect_gprscdr_IPAddress(implicit_tag, tvb, offset, actx, tree, hf_index);
1298
1299 return offset;
1300 }
1301
1302
1303
1304 static int
dissect_gprscdr_GraphicString(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1305 dissect_gprscdr_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1306 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
1307 actx, tree, tvb, offset, hf_index,
1308 NULL);
1309
1310 return offset;
1311 }
1312
1313
1314
1315 static int
dissect_gprscdr_UTF8String(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1316 dissect_gprscdr_UTF8String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1317 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
1318 actx, tree, tvb, offset, hf_index,
1319 NULL);
1320
1321 return offset;
1322 }
1323
1324
1325 static const value_string gprscdr_InvolvedParty_vals[] = {
1326 { 0, "sIP-URI" },
1327 { 1, "tEL-URI" },
1328 { 2, "uRN" },
1329 { 3, "iSDN-E164" },
1330 { 4, "externalId" },
1331 { 0, NULL }
1332 };
1333
1334 static const ber_choice_t InvolvedParty_choice[] = {
1335 { 0, &hf_gprscdr_sIP_URI , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
1336 { 1, &hf_gprscdr_tEL_URI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
1337 { 2, &hf_gprscdr_uRN , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
1338 { 3, &hf_gprscdr_iSDN_E164 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
1339 { 4, &hf_gprscdr_externalId , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_UTF8String },
1340 { 0, NULL, 0, 0, 0, NULL }
1341 };
1342
1343 static int
dissect_gprscdr_InvolvedParty(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1344 dissect_gprscdr_InvolvedParty(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1345 offset = dissect_ber_choice(actx, tree, tvb, offset,
1346 InvolvedParty_choice, hf_index, ett_gprscdr_InvolvedParty,
1347 NULL);
1348
1349 return offset;
1350 }
1351
1352
1353
1354 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_)1355 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_) {
1356 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1357 NULL);
1358
1359 return offset;
1360 }
1361
1362
1363 static const ber_sequence_t LCSClientIdentity_sequence[] = {
1364 { &hf_gprscdr_lcsClientExternalID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
1365 { &hf_gprscdr_lcsClientDialedByMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
1366 { &hf_gprscdr_lcsClientInternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
1367 { NULL, 0, 0, 0, NULL }
1368 };
1369
1370 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_)1371 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_) {
1372 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1373 LCSClientIdentity_sequence, hf_index, ett_gprscdr_LCSClientIdentity);
1374
1375 return offset;
1376 }
1377
1378
1379
1380 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_)1381 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_) {
1382 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1383 NULL);
1384
1385 return offset;
1386 }
1387
1388
1389 static int * const LevelOfCAMELService_bits[] = {
1390 &hf_gprscdr_LevelOfCAMELService_basic,
1391 &hf_gprscdr_LevelOfCAMELService_callDurationSupervision,
1392 &hf_gprscdr_LevelOfCAMELService_onlineCharging,
1393 NULL
1394 };
1395
1396 static int
dissect_gprscdr_LevelOfCAMELService(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1397 dissect_gprscdr_LevelOfCAMELService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1398 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1399 LevelOfCAMELService_bits, 3, hf_index, ett_gprscdr_LevelOfCAMELService,
1400 NULL);
1401
1402 return offset;
1403 }
1404
1405
1406
1407 static int
dissect_gprscdr_LocalSequenceNumber(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1408 dissect_gprscdr_LocalSequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1409 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1410 NULL);
1411
1412 return offset;
1413 }
1414
1415
1416
1417 static int
dissect_gprscdr_LocationAreaCode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1418 dissect_gprscdr_LocationAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1419 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1420 NULL);
1421
1422 return offset;
1423 }
1424
1425
1426
1427 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_)1428 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_) {
1429 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1430 NULL);
1431
1432 return offset;
1433 }
1434
1435
1436 static const ber_sequence_t LocationAreaAndCell_sequence[] = {
1437 { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
1438 { &hf_gprscdr_cellId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
1439 { &hf_gprscdr_mCC_MNC , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MCC_MNC },
1440 { NULL, 0, 0, 0, NULL }
1441 };
1442
1443 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_)1444 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_) {
1445 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1446 LocationAreaAndCell_sequence, hf_index, ett_gprscdr_LocationAreaAndCell);
1447
1448 return offset;
1449 }
1450
1451
1452 static const ber_sequence_t ManagementExtensions_set_of[1] = {
1453 { &hf_gprscdr_ManagementExtensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ManagementExtension },
1454 };
1455
1456 static int
dissect_gprscdr_ManagementExtensions(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1457 dissect_gprscdr_ManagementExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1458 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1459 ManagementExtensions_set_of, hf_index, ett_gprscdr_ManagementExtensions);
1460
1461 return offset;
1462 }
1463
1464
1465 static const value_string gprscdr_MBMS2G3GIndicator_vals[] = {
1466 { 0, "twoG" },
1467 { 1, "threeG" },
1468 { 2, "twoG-AND-threeG" },
1469 { 0, NULL }
1470 };
1471
1472
1473 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_)1474 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_) {
1475 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1476 NULL);
1477
1478 return offset;
1479 }
1480
1481
1482
1483 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_)1484 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_) {
1485 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1486 NULL);
1487
1488 return offset;
1489 }
1490
1491
1492
1493 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_)1494 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_) {
1495 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1496 NULL);
1497
1498 return offset;
1499 }
1500
1501
1502 static const value_string gprscdr_MBMSServiceType_vals[] = {
1503 { 0, "mULTICAST" },
1504 { 1, "bROADCAST" },
1505 { 0, NULL }
1506 };
1507
1508
1509 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_)1510 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_) {
1511 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1512 NULL);
1513
1514 return offset;
1515 }
1516
1517
1518 static const value_string gprscdr_MBMSUserServiceType_vals[] = {
1519 { 0, "dOWNLOAD" },
1520 { 1, "sTREAMING" },
1521 { 0, NULL }
1522 };
1523
1524
1525 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_)1526 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_) {
1527 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1528 NULL);
1529
1530 return offset;
1531 }
1532
1533
1534
1535 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_)1536 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_) {
1537 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1538 NULL);
1539
1540 return offset;
1541 }
1542
1543
1544
1545 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_)1546 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_) {
1547 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1548 NULL);
1549
1550 return offset;
1551 }
1552
1553
1554
1555 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_)1556 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_) {
1557 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1558 NULL);
1559
1560 return offset;
1561 }
1562
1563
1564
1565 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_)1566 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_) {
1567 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1568 NULL);
1569
1570 return offset;
1571 }
1572
1573
1574 static const ber_sequence_t MBMSInformation_set[] = {
1575 { &hf_gprscdr_tMGI , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TMGI },
1576 { &hf_gprscdr_mBMSSessionIdentity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSSessionIdentity },
1577 { &hf_gprscdr_mBMSServiceType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSServiceType },
1578 { &hf_gprscdr_mBMSUserServiceType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSUserServiceType },
1579 { &hf_gprscdr_mBMS2G3GIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMS2G3GIndicator },
1580 { &hf_gprscdr_fileRepairSupported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_BOOLEAN },
1581 { &hf_gprscdr_rAI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
1582 { &hf_gprscdr_mBMSServiceArea, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSServiceArea },
1583 { &hf_gprscdr_requiredMBMSBearerCaps, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RequiredMBMSBearerCapabilities },
1584 { &hf_gprscdr_mBMSGWAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
1585 { &hf_gprscdr_cNIPMulticastDistribution, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNIPMulticastDistribution },
1586 { &hf_gprscdr_mBMSDataTransferStart, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSTime },
1587 { &hf_gprscdr_mBMSDataTransferStop, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSTime },
1588 { NULL, 0, 0, 0, NULL }
1589 };
1590
1591 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_)1592 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_) {
1593 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1594 MBMSInformation_set, hf_index, ett_gprscdr_MBMSInformation);
1595
1596 return offset;
1597 }
1598
1599
1600
1601 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_)1602 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_) {
1603 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1604 NULL);
1605
1606 return offset;
1607 }
1608
1609
1610
1611 static int
dissect_gprscdr_MSISDN(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1612 dissect_gprscdr_MSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1613 offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
1614
1615 return offset;
1616 }
1617
1618
1619
1620 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_)1621 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_) {
1622 #line 103 "./asn1/gprscdr/gprscdr.cnf"
1623 /*
1624 *
1625 * 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
1626 */
1627 tvbuff_t *parameter_tvb;
1628 guint8 data, data2;
1629 char sign;
1630
1631 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1632 ¶meter_tvb);
1633
1634
1635 if (!parameter_tvb)
1636 return offset;
1637
1638 data = tvb_get_guint8(parameter_tvb, 0);
1639 sign = (data & 0x08) ? '-' : '+';
1640 data = (data >> 4) + (data & 0x07) * 10;
1641
1642 data2 = tvb_get_guint8(tvb, 1) & 0x3;
1643
1644 proto_item_append_text(actx->created_item, " (GMT %c %d hours %d minutes %s)",
1645 sign,
1646 data / 4,
1647 data % 4 * 15,
1648 val_to_str_const(data2, gprscdr_daylight_saving_time_vals, "Unknown")
1649 );
1650
1651
1652
1653 return offset;
1654 }
1655
1656
1657
1658 static int
dissect_gprscdr_NrCellId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1659 dissect_gprscdr_NrCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1660 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
1661 actx, tree, tvb, offset, hf_index,
1662 NULL);
1663
1664 return offset;
1665 }
1666
1667
1668 static const ber_sequence_t Ncgi_sequence[] = {
1669 { &hf_gprscdr_plmnId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
1670 { &hf_gprscdr_nrCellId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_NrCellId },
1671 { &hf_gprscdr_nid , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_Nid },
1672 { NULL, 0, 0, 0, NULL }
1673 };
1674
1675 static int
dissect_gprscdr_Ncgi(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1676 dissect_gprscdr_Ncgi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1677 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1678 Ncgi_sequence, hf_index, ett_gprscdr_Ncgi);
1679
1680 return offset;
1681 }
1682
1683
1684
1685 static int
dissect_gprscdr_NodeID(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1686 dissect_gprscdr_NodeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1687 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1688 actx, tree, tvb, offset, hf_index,
1689 NULL);
1690
1691 return offset;
1692 }
1693
1694
1695 static const value_string gprscdr_PDPAddress_vals[] = {
1696 { 0, "iPAddress" },
1697 { 0, NULL }
1698 };
1699
1700 static const ber_choice_t PDPAddress_choice[] = {
1701 { 0, &hf_gprscdr_iPAddress , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPAddress },
1702 { 0, NULL, 0, 0, 0, NULL }
1703 };
1704
1705 static int
dissect_gprscdr_PDPAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1706 dissect_gprscdr_PDPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1707 offset = dissect_ber_choice(actx, tree, tvb, offset,
1708 PDPAddress_choice, hf_index, ett_gprscdr_PDPAddress,
1709 NULL);
1710
1711 return offset;
1712 }
1713
1714
1715
1716 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_)1717 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_) {
1718 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1719 NULL);
1720
1721 return offset;
1722 }
1723
1724
1725 static const ber_sequence_t PSCellInformation_sequence[] = {
1726 { &hf_gprscdr_nRcgi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_Ncgi },
1727 { &hf_gprscdr_ecgi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_Ecgi },
1728 { NULL, 0, 0, 0, NULL }
1729 };
1730
1731 static int
dissect_gprscdr_PSCellInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1732 dissect_gprscdr_PSCellInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1733 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1734 PSCellInformation_sequence, hf_index, ett_gprscdr_PSCellInformation);
1735
1736 return offset;
1737 }
1738
1739
1740
1741 static int
dissect_gprscdr_RATType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1742 dissect_gprscdr_RATType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1743 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1744 NULL);
1745
1746 return offset;
1747 }
1748
1749
1750
1751 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_)1752 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_) {
1753 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
1754
1755 return offset;
1756 }
1757
1758
1759 static const value_string gprscdr_RecordType_vals[] = {
1760 { 0, "moCallRecord" },
1761 { 1, "mtCallRecord" },
1762 { 2, "roamingRecord" },
1763 { 3, "incGatewayRecord" },
1764 { 4, "outGatewayRecord" },
1765 { 5, "transitCallRecord" },
1766 { 6, "moSMSRecord" },
1767 { 7, "mtSMSRecord" },
1768 { 8, "moSMSIWRecord" },
1769 { 9, "mtSMSGWRecord" },
1770 { 10, "ssActionRecord" },
1771 { 11, "hlrIntRecord" },
1772 { 12, "locUpdateHLRRecord" },
1773 { 13, "locUpdateVLRRecord" },
1774 { 14, "commonEquipRecord" },
1775 { 15, "moTraceRecord" },
1776 { 16, "mtTraceRecord" },
1777 { 17, "termCAMELRecord" },
1778 { 18, "sgsnPDPRecord" },
1779 { 20, "sgsnMMRecord" },
1780 { 21, "sgsnSMORecord" },
1781 { 22, "sgsnSMTRecord" },
1782 { 23, "mtLCSRecord" },
1783 { 24, "moLCSRecord" },
1784 { 25, "niLCSRecord" },
1785 { 26, "sgsnMTLCSRecord" },
1786 { 27, "sgsnMOLCSRecord" },
1787 { 28, "sgsnNILCSRecord" },
1788 { 30, "mMO1SRecord" },
1789 { 31, "mMO4FRqRecord" },
1790 { 32, "mMO4FRsRecord" },
1791 { 33, "mMO4DRecord" },
1792 { 34, "mMO1DRecord" },
1793 { 35, "mMO4RRecord" },
1794 { 36, "mMO1RRecord" },
1795 { 37, "mMOMDRecord" },
1796 { 38, "mMR4FRecord" },
1797 { 39, "mMR1NRqRecord" },
1798 { 40, "mMR1NRsRecord" },
1799 { 41, "mMR1RtRecord" },
1800 { 42, "mMR1AFRecord" },
1801 { 43, "mMR4DRqRecord" },
1802 { 44, "mMR4DRsRecord" },
1803 { 45, "mMR1RRRecord" },
1804 { 46, "mMR4RRqRecord" },
1805 { 47, "mMR4RRsRecord" },
1806 { 48, "mMRMDRecord" },
1807 { 49, "mMFRecord" },
1808 { 50, "mMBx1SRecord" },
1809 { 51, "mMBx1VRecord" },
1810 { 52, "mMBx1URecord" },
1811 { 53, "mMBx1DRecord" },
1812 { 54, "mM7SRecord" },
1813 { 55, "mM7DRqRecord" },
1814 { 56, "mM7DRsRecord" },
1815 { 57, "mM7CRecord" },
1816 { 58, "mM7RRecord" },
1817 { 59, "mM7DRRqRecord" },
1818 { 60, "mM7DRRsRecord" },
1819 { 61, "mM7RRqRecord" },
1820 { 62, "mM7RRsRecord" },
1821 { 63, "sCSCFRecord" },
1822 { 64, "pCSCFRecord" },
1823 { 65, "iCSCFRecord" },
1824 { 66, "mRFCRecord" },
1825 { 67, "mGCFRecord" },
1826 { 68, "bGCFRecord" },
1827 { 69, "aSRecord" },
1828 { 70, "eCSCFRecord" },
1829 { 82, "iBCFRecord" },
1830 { 89, "tRFRecord" },
1831 { 90, "tFRecord" },
1832 { 91, "aTCFRecord" },
1833 { 71, "lCSGMORecord" },
1834 { 72, "lCSRGMTRecord" },
1835 { 73, "lCSHGMTRecord" },
1836 { 74, "lCSVGMTRecord" },
1837 { 75, "lCSGNIRecord" },
1838 { 76, "sgsnMBMSRecord" },
1839 { 77, "ggsnMBMSRecord" },
1840 { 86, "gwMBMSRecord" },
1841 { 78, "sUBBMSCRecord" },
1842 { 79, "cONTENTBMSCRecord" },
1843 { 80, "pPFRecord" },
1844 { 81, "cPFRecord" },
1845 { 84, "sGWRecord" },
1846 { 85, "pGWRecord" },
1847 { 92, "tDFRecord" },
1848 { 95, "iPERecord" },
1849 { 96, "ePDGRecord" },
1850 { 97, "tWAGRecord" },
1851 { 83, "mMTelRecord" },
1852 { 87, "mSCsRVCCRecord" },
1853 { 88, "mMTRFRecord" },
1854 { 99, "iCSRegisterRecord" },
1855 { 93, "sCSMORecord" },
1856 { 94, "sCSMTRecord" },
1857 { 100, "pFDDRecord" },
1858 { 101, "pFEDRecord" },
1859 { 102, "pFDCRecord" },
1860 { 103, "mECORecord" },
1861 { 104, "mERERecord" },
1862 { 105, "cPDTSCERecord" },
1863 { 106, "cPDTSNNRecord" },
1864 { 110, "sCDVTT4Record" },
1865 { 111, "sCSMOT4Record" },
1866 { 112, "iSMSMORecord" },
1867 { 113, "iSMSMTRecord" },
1868 { 120, "eASCERecord" },
1869 { 200, "chargingFunctionRecord" },
1870 { 0, NULL }
1871 };
1872
1873
1874 static int
dissect_gprscdr_RecordType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1875 dissect_gprscdr_RecordType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1876 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1877 NULL);
1878
1879 return offset;
1880 }
1881
1882
1883 static const ber_sequence_t SCSASAddress_set[] = {
1884 { &hf_gprscdr_sCSAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_IPAddress },
1885 { &hf_gprscdr_sCSRealm , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity },
1886 { NULL, 0, 0, 0, NULL }
1887 };
1888
1889 static int
dissect_gprscdr_SCSASAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1890 dissect_gprscdr_SCSASAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1891 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1892 SCSASAddress_set, hf_index, ett_gprscdr_SCSASAddress);
1893
1894 return offset;
1895 }
1896
1897
1898 static const ber_sequence_t ServiceSpecificInfo_sequence[] = {
1899 { &hf_gprscdr_serviceSpecificData, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
1900 { &hf_gprscdr_serviceSpecificType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
1901 { NULL, 0, 0, 0, NULL }
1902 };
1903
1904 static int
dissect_gprscdr_ServiceSpecificInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1905 dissect_gprscdr_ServiceSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1906 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1907 ServiceSpecificInfo_sequence, hf_index, ett_gprscdr_ServiceSpecificInfo);
1908
1909 return offset;
1910 }
1911
1912
1913
1914 static int
dissect_gprscdr_SMSResult(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1915 dissect_gprscdr_SMSResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1916 offset = dissect_gprscdr_Diagnostics(implicit_tag, tvb, offset, actx, tree, hf_index);
1917
1918 return offset;
1919 }
1920
1921
1922
1923 static int
dissect_gprscdr_SmsTpDestinationNumber(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1924 dissect_gprscdr_SmsTpDestinationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1925 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1926 NULL);
1927
1928 return offset;
1929 }
1930
1931
1932 static const value_string gprscdr_SubscriptionIDType_vals[] = {
1933 { 0, "eND-USER-E164" },
1934 { 1, "eND-USER-IMSI" },
1935 { 2, "eND-USER-SIP-URI" },
1936 { 3, "eND-USER-NAI" },
1937 { 4, "eND-USER-PRIVATE" },
1938 { 0, NULL }
1939 };
1940
1941
1942 static int
dissect_gprscdr_SubscriptionIDType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1943 dissect_gprscdr_SubscriptionIDType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1944 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1945 NULL);
1946
1947 return offset;
1948 }
1949
1950
1951 static const ber_sequence_t SubscriptionID_set[] = {
1952 { &hf_gprscdr_subscriptionIDType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionIDType },
1953 { &hf_gprscdr_subscriptionIDData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_UTF8String },
1954 { NULL, 0, 0, 0, NULL }
1955 };
1956
1957 static int
dissect_gprscdr_SubscriptionID(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1958 dissect_gprscdr_SubscriptionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1959 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1960 SubscriptionID_set, hf_index, ett_gprscdr_SubscriptionID);
1961
1962 return offset;
1963 }
1964
1965
1966 static const value_string gprscdr_ThreeGPPPSDataOffStatus_vals[] = {
1967 { 0, "active" },
1968 { 1, "inactive" },
1969 { 0, NULL }
1970 };
1971
1972
1973 static int
dissect_gprscdr_ThreeGPPPSDataOffStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)1974 dissect_gprscdr_ThreeGPPPSDataOffStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1975 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1976 NULL);
1977
1978 return offset;
1979 }
1980
1981
1982
1983 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_)1984 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_) {
1985 #line 64 "./asn1/gprscdr/gprscdr.cnf"
1986 /*
1987 *
1988 * The contents of this field are a compact form of the UTCTime format
1989 * containing local time plus an offset to universal time. Binary coded
1990 * decimal encoding is employed for the digits to reduce the storage and
1991 * transmission overhead
1992 * e.g. YYMMDDhhmmssShhmm
1993 * where
1994 * YY = Year 00 to 99 BCD encoded
1995 * MM = Month 01 to 12 BCD encoded
1996 * DD = Day 01 to 31 BCD encoded
1997 * hh = hour 00 to 23 BCD encoded
1998 * mm = minute 00 to 59 BCD encoded
1999 * ss = second 00 to 59 BCD encoded
2000 * S = Sign 0 = "+", "-" ASCII encoded
2001 * hh = hour 00 to 23 BCD encoded
2002 * mm = minute 00 to 59 BCD encoded
2003 */
2004
2005 tvbuff_t *parameter_tvb;
2006
2007 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2008 ¶meter_tvb);
2009
2010
2011 if (!parameter_tvb)
2012 return offset;
2013
2014 proto_item_append_text(actx->created_item, " (UTC %x-%x-%x %x:%x:%x %s%x:%x)",
2015 tvb_get_guint8(parameter_tvb,0), /* Year */
2016 tvb_get_guint8(parameter_tvb,1), /* Month */
2017 tvb_get_guint8(parameter_tvb,2), /* Day */
2018 tvb_get_guint8(parameter_tvb,3), /* Hour */
2019 tvb_get_guint8(parameter_tvb,4), /* Minute */
2020 tvb_get_guint8(parameter_tvb,5), /* Second */
2021 tvb_get_string_enc(actx->pinfo->pool, parameter_tvb,6,1,ENC_ASCII|ENC_NA), /* Sign */
2022 tvb_get_guint8(parameter_tvb,7), /* Hour */
2023 tvb_get_guint8(parameter_tvb,8) /* Minute */
2024 );
2025
2026
2027
2028 return offset;
2029 }
2030
2031
2032
2033 static int
dissect_gprscdr_NetworkInitiatedPDPContext(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2034 dissect_gprscdr_NetworkInitiatedPDPContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2036
2037 return offset;
2038 }
2039
2040
2041
2042 static int
dissect_gprscdr_MSNetworkCapability(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2043 dissect_gprscdr_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2044 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2045 NULL);
2046
2047 return offset;
2048 }
2049
2050
2051
2052 static int
dissect_gprscdr_AccessPointNameNI(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2053 dissect_gprscdr_AccessPointNameNI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2054 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
2055 actx, tree, tvb, offset, hf_index,
2056 NULL);
2057
2058 return offset;
2059 }
2060
2061
2062
2063 static int
dissect_gprscdr_PDPType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2064 dissect_gprscdr_PDPType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2065 #line 227 "./asn1/gprscdr/gprscdr.cnf"
2066 proto_tree *ext_tree_pdp_pdn_type;
2067 guint length;
2068
2069 length = tvb_reported_length(tvb);
2070
2071 if(length == 1) {
2072 /*
2073 * PDN/EPS Bearer
2074 * TS 29.274
2075 * 8.34 PDN Type
2076 */
2077 ext_tree_pdp_pdn_type = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_pdp_pdn_type, NULL, "pDNType");
2078 dissect_gtpv2_pdn_type(tvb, actx->pinfo, ext_tree_pdp_pdn_type, NULL, length, 0, 0, NULL);
2079 offset = length;
2080 }
2081 else {
2082 /* PDP context
2083 * TS 29.060
2084 * 7.7.27 End User Address
2085 * Octet 4-5
2086 */
2087 ext_tree_pdp_pdn_type = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_pdp_pdn_type, NULL, "pDPType");
2088 offset = de_sm_pdp_addr(tvb, ext_tree_pdp_pdn_type, actx->pinfo, 0, length, NULL, 0);
2089 }
2090
2091
2092
2093
2094 return offset;
2095 }
2096
2097
2098
2099 static int
dissect_gprscdr_QoSInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2100 dissect_gprscdr_QoSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2101 #line 142 "./asn1/gprscdr/gprscdr.cnf"
2102
2103 /* This octet string is a 1:1 copy of the contents (i.e. starting with octet 4) of the
2104 * Quality of Service (QoS) Profile information element specified in 29.060, ch7.7.34.
2105 *
2106 */
2107
2108 header_field_info *hfi;
2109 hfi = proto_registrar_get_nth(hf_index);
2110
2111 offset = decode_qos_umts(tvb, 0, actx->pinfo, tree, hfi->name, 0);
2112
2113
2114
2115 return offset;
2116 }
2117
2118
2119
2120 static int
dissect_gprscdr_DataVolumeGPRS(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2121 dissect_gprscdr_DataVolumeGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2122 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2123 NULL);
2124
2125 return offset;
2126 }
2127
2128
2129 static const value_string gprscdr_ChangeConditionV651_vals[] = {
2130 { 0, "qoSChange" },
2131 { 1, "tariffTime" },
2132 { 2, "recordClosure" },
2133 { 3, "failureHandlingContinueOngoing" },
2134 { 4, "failureHandlingRetryandTerminateOngoing" },
2135 { 5, "failureHandlingTerminateOngoing" },
2136 { 6, "cGI-SAICHange" },
2137 { 7, "rAIChange" },
2138 { 8, "dT-Establishment" },
2139 { 9, "dT-Removal" },
2140 { 0, NULL }
2141 };
2142
2143
2144 static int
dissect_gprscdr_ChangeConditionV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2145 dissect_gprscdr_ChangeConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2146 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2147 NULL);
2148
2149 return offset;
2150 }
2151
2152
2153
2154 static int
dissect_gprscdr_FailureHandlingContinue(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2155 dissect_gprscdr_FailureHandlingContinue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2156 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2157
2158 return offset;
2159 }
2160
2161
2162
2163 static int
dissect_gprscdr_T_userLocationInformation_04(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2164 dissect_gprscdr_T_userLocationInformation_04(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2165 #line 187 "./asn1/gprscdr/gprscdr.cnf"
2166
2167 offset = dissect_gprscdr_uli(tvb, actx, tree, 1);
2168
2169
2170
2171 return offset;
2172 }
2173
2174
2175 static const ber_sequence_t ChangeOfCharConditionV651_sequence[] = {
2176 { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
2177 { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
2178 { &hf_gprscdr_dataVolumeGPRSUplink, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
2179 { &hf_gprscdr_dataVolumeGPRSDownlink, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
2180 { &hf_gprscdr_changeCondition, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeConditionV651 },
2181 { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2182 { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
2183 { &hf_gprscdr_userLocationInformation_04, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_04 },
2184 { NULL, 0, 0, 0, NULL }
2185 };
2186
2187 static int
dissect_gprscdr_ChangeOfCharConditionV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2188 dissect_gprscdr_ChangeOfCharConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2189 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2190 ChangeOfCharConditionV651_sequence, hf_index, ett_gprscdr_ChangeOfCharConditionV651);
2191
2192 return offset;
2193 }
2194
2195
2196 static const ber_sequence_t SEQUENCE_OF_ChangeOfCharConditionV651_sequence_of[1] = {
2197 { &hf_gprscdr_listOfTrafficVolumes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharConditionV651 },
2198 };
2199
2200 static int
dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2201 dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2202 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2203 SEQUENCE_OF_ChangeOfCharConditionV651_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651);
2204
2205 return offset;
2206 }
2207
2208
2209
2210 static int
dissect_gprscdr_SGSNChange(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2211 dissect_gprscdr_SGSNChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2212 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2213
2214 return offset;
2215 }
2216
2217
2218 static const value_string gprscdr_CauseForRecClosingV651_vals[] = {
2219 { 0, "normalRelease" },
2220 { 4, "abnormalRelease" },
2221 { 5, "cAMELInitCallRelease" },
2222 { 16, "volumeLimit" },
2223 { 17, "timeLimit" },
2224 { 18, "sGSNChange" },
2225 { 19, "maxChangeCond" },
2226 { 20, "managementIntervention" },
2227 { 21, "intraSGSNIntersystemChange" },
2228 { 22, "rATChange" },
2229 { 23, "mSTimeZoneChange" },
2230 { 24, "sGSNPLMNIDChange" },
2231 { 52, "unauthorizedRequestingNetwork" },
2232 { 53, "unauthorizedLCSClient" },
2233 { 54, "positionMethodFailure" },
2234 { 58, "unknownOrUnreachableLCSClient" },
2235 { 59, "listofDownstreamNodeChange" },
2236 { 0, NULL }
2237 };
2238
2239
2240 static int
dissect_gprscdr_CauseForRecClosingV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2241 dissect_gprscdr_CauseForRecClosingV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2242 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2243 NULL);
2244
2245 return offset;
2246 }
2247
2248
2249 static const value_string gprscdr_APNSelectionMode_vals[] = {
2250 { 0, "mSorNetworkProvidedSubscriptionVerified" },
2251 { 1, "mSProvidedSubscriptionNotVerified" },
2252 { 2, "networkProvidedSubscriptionNotVerified" },
2253 { 0, NULL }
2254 };
2255
2256
2257 static int
dissect_gprscdr_APNSelectionMode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2258 dissect_gprscdr_APNSelectionMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2259 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2260 NULL);
2261
2262 return offset;
2263 }
2264
2265
2266
2267 static int
dissect_gprscdr_AccessPointNameOI(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2268 dissect_gprscdr_AccessPointNameOI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2269 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
2270 actx, tree, tvb, offset, hf_index,
2271 NULL);
2272
2273 return offset;
2274 }
2275
2276
2277
2278 static int
dissect_gprscdr_ChargingCharacteristics(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2279 dissect_gprscdr_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2280 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2281 NULL);
2282
2283 return offset;
2284 }
2285
2286
2287
2288 static int
dissect_gprscdr_SCFAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2289 dissect_gprscdr_SCFAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2290 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
2291
2292 return offset;
2293 }
2294
2295
2296
2297 static int
dissect_gprscdr_CAMELAccessPointNameNI(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2298 dissect_gprscdr_CAMELAccessPointNameNI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2299 offset = dissect_gprscdr_AccessPointNameNI(implicit_tag, tvb, offset, actx, tree, hf_index);
2300
2301 return offset;
2302 }
2303
2304
2305
2306 static int
dissect_gprscdr_CAMELAccessPointNameOI(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2307 dissect_gprscdr_CAMELAccessPointNameOI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2308 offset = dissect_gprscdr_AccessPointNameOI(implicit_tag, tvb, offset, actx, tree, hf_index);
2309
2310 return offset;
2311 }
2312
2313
2314
2315 static int
dissect_gprscdr_NumberOfDPEncountered(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2316 dissect_gprscdr_NumberOfDPEncountered(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2317 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2318 NULL);
2319
2320 return offset;
2321 }
2322
2323
2324
2325 static int
dissect_gprscdr_FreeFormatData(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2326 dissect_gprscdr_FreeFormatData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2327 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2328 NULL);
2329
2330 return offset;
2331 }
2332
2333
2334
2335 static int
dissect_gprscdr_FFDAppendIndicator(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2336 dissect_gprscdr_FFDAppendIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2337 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2338
2339 return offset;
2340 }
2341
2342
2343 static const ber_sequence_t CAMELInformationPDP_set[] = {
2344 { &hf_gprscdr_sCFAddress , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SCFAddress },
2345 { &hf_gprscdr_serviceKey , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
2346 { &hf_gprscdr_defaultTransactionHandling, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
2347 { &hf_gprscdr_cAMELAccessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELAccessPointNameNI },
2348 { &hf_gprscdr_cAMELAccessPointNameOI, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELAccessPointNameOI },
2349 { &hf_gprscdr_numberOfDPEncountered, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NumberOfDPEncountered },
2350 { &hf_gprscdr_levelOfCAMELService, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LevelOfCAMELService },
2351 { &hf_gprscdr_freeFormatData, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FreeFormatData },
2352 { &hf_gprscdr_fFDAppendIndicator, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FFDAppendIndicator },
2353 { NULL, 0, 0, 0, NULL }
2354 };
2355
2356 static int
dissect_gprscdr_CAMELInformationPDP(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2357 dissect_gprscdr_CAMELInformationPDP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2358 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2359 CAMELInformationPDP_set, hf_index, ett_gprscdr_CAMELInformationPDP);
2360
2361 return offset;
2362 }
2363
2364
2365 static const value_string gprscdr_ChChSelectionMode_vals[] = {
2366 { 0, "servingNodeSupplied" },
2367 { 1, "subscriptionSpecific" },
2368 { 2, "aPNSpecific" },
2369 { 3, "homeDefault" },
2370 { 4, "roamingDefault" },
2371 { 5, "visitingDefault" },
2372 { 6, "fixedDefault" },
2373 { 0, NULL }
2374 };
2375
2376
2377 static int
dissect_gprscdr_ChChSelectionMode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2378 dissect_gprscdr_ChChSelectionMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2379 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2380 NULL);
2381
2382 return offset;
2383 }
2384
2385
2386 static const ber_sequence_t SGSNPDPRecordV651_set[] = {
2387 { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
2388 { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
2389 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2390 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2391 { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2392 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
2393 { &hf_gprscdr_routingArea , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
2394 { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
2395 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
2396 { &hf_gprscdr_chargingID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
2397 { &hf_gprscdr_ggsnAddressUsed, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2398 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
2399 { &hf_gprscdr_pdpType , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
2400 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
2401 { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
2402 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2403 { &hf_gprscdr_duration , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
2404 { &hf_gprscdr_sgsnChange , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNChange },
2405 { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
2406 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
2407 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
2408 { &hf_gprscdr_nodeID , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2409 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2410 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2411 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
2412 { &hf_gprscdr_accessPointNameOI, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameOI },
2413 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2414 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2415 { &hf_gprscdr_rATType , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2416 { &hf_gprscdr_cAMELInformationPDP, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationPDP },
2417 { &hf_gprscdr_rNCUnsentDownlinkVolume, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
2418 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2419 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
2420 { NULL, 0, 0, 0, NULL }
2421 };
2422
2423 static int
dissect_gprscdr_SGSNPDPRecordV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2424 dissect_gprscdr_SGSNPDPRecordV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2425 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2426 SGSNPDPRecordV651_set, hf_index, ett_gprscdr_SGSNPDPRecordV651);
2427
2428 return offset;
2429 }
2430
2431
2432 static const ber_sequence_t SEQUENCE_OF_GSNAddress_sequence_of[1] = {
2433 { &hf_gprscdr_sgsnAddress_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2434 };
2435
2436 static int
dissect_gprscdr_SEQUENCE_OF_GSNAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2437 dissect_gprscdr_SEQUENCE_OF_GSNAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2438 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2439 SEQUENCE_OF_GSNAddress_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_GSNAddress);
2440
2441 return offset;
2442 }
2443
2444
2445
2446 static int
dissect_gprscdr_NULL(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2447 dissect_gprscdr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2448 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2449
2450 return offset;
2451 }
2452
2453
2454
2455 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_)2456 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_) {
2457 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2458 NULL);
2459
2460 return offset;
2461 }
2462
2463
2464
2465 static int
dissect_gprscdr_T_userLocationInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2466 dissect_gprscdr_T_userLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2467 #line 171 "./asn1/gprscdr/gprscdr.cnf"
2468
2469 offset = dissect_gprscdr_uli(tvb, actx, tree, 1);
2470
2471
2472
2473 return offset;
2474 }
2475
2476
2477 static const ber_sequence_t GGSNPDPRecord_set[] = {
2478 { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
2479 { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
2480 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2481 { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2482 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
2483 { &hf_gprscdr_sgsnAddress , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
2484 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
2485 { &hf_gprscdr_pdpType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
2486 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
2487 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
2488 { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
2489 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2490 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
2491 { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
2492 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
2493 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
2494 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2495 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2496 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2497 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
2498 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2499 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2500 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2501 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
2502 { &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
2503 { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2504 { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2505 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2506 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
2507 { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation },
2508 { &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
2509 { NULL, 0, 0, 0, NULL }
2510 };
2511
2512 static int
dissect_gprscdr_GGSNPDPRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2513 dissect_gprscdr_GGSNPDPRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2514 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2515 GGSNPDPRecord_set, hf_index, ett_gprscdr_GGSNPDPRecord);
2516
2517 return offset;
2518 }
2519
2520
2521 static const ber_sequence_t ChangeLocation_sequence[] = {
2522 { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
2523 { &hf_gprscdr_routingAreaCode, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
2524 { &hf_gprscdr_cellId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
2525 { &hf_gprscdr_changeTime , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2526 { &hf_gprscdr_mCC_MNC_01 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2527 { NULL, 0, 0, 0, NULL }
2528 };
2529
2530 static int
dissect_gprscdr_ChangeLocation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2531 dissect_gprscdr_ChangeLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2532 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2533 ChangeLocation_sequence, hf_index, ett_gprscdr_ChangeLocation);
2534
2535 return offset;
2536 }
2537
2538
2539 static const ber_sequence_t SEQUENCE_OF_ChangeLocation_sequence_of[1] = {
2540 { &hf_gprscdr_changeLocation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeLocation },
2541 };
2542
2543 static int
dissect_gprscdr_SEQUENCE_OF_ChangeLocation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2544 dissect_gprscdr_SEQUENCE_OF_ChangeLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2545 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2546 SEQUENCE_OF_ChangeLocation_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeLocation);
2547
2548 return offset;
2549 }
2550
2551
2552 static const ber_sequence_t CAMELInformationMM_set[] = {
2553 { &hf_gprscdr_sCFAddress , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SCFAddress },
2554 { &hf_gprscdr_serviceKey , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
2555 { &hf_gprscdr_defaultTransactionHandling, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
2556 { &hf_gprscdr_numberOfDPEncountered, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NumberOfDPEncountered },
2557 { &hf_gprscdr_levelOfCAMELService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LevelOfCAMELService },
2558 { &hf_gprscdr_freeFormatData, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FreeFormatData },
2559 { &hf_gprscdr_fFDAppendIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FFDAppendIndicator },
2560 { NULL, 0, 0, 0, NULL }
2561 };
2562
2563 static int
dissect_gprscdr_CAMELInformationMM(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2564 dissect_gprscdr_CAMELInformationMM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2565 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2566 CAMELInformationMM_set, hf_index, ett_gprscdr_CAMELInformationMM);
2567
2568 return offset;
2569 }
2570
2571
2572 static const value_string gprscdr_CNOperatorSelectionEntity_vals[] = {
2573 { 0, "servCNSelectedbyUE" },
2574 { 1, "servCNSelectedbyNtw" },
2575 { 0, NULL }
2576 };
2577
2578
2579 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_)2580 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_) {
2581 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2582 NULL);
2583
2584 return offset;
2585 }
2586
2587
2588 static const ber_sequence_t SGSNMMRecord_set[] = {
2589 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
2590 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2591 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2592 { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2593 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
2594 { &hf_gprscdr_routingArea , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
2595 { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
2596 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
2597 { &hf_gprscdr_changeLocation, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeLocation },
2598 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2599 { &hf_gprscdr_duration , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
2600 { &hf_gprscdr_sgsnChange , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNChange },
2601 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
2602 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
2603 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
2604 { &hf_gprscdr_nodeID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2605 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2606 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2607 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2608 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2609 { &hf_gprscdr_cAMELInformationMM, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationMM },
2610 { &hf_gprscdr_rATType , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2611 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2612 { &hf_gprscdr_cellPLMNId , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2613 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2614 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
2615 { NULL, 0, 0, 0, NULL }
2616 };
2617
2618 static int
dissect_gprscdr_SGSNMMRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2619 dissect_gprscdr_SGSNMMRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2620 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2621 SGSNMMRecord_set, hf_index, ett_gprscdr_SGSNMMRecord);
2622
2623 return offset;
2624 }
2625
2626
2627 static const ber_sequence_t CAMELInformationSMS_set[] = {
2628 { &hf_gprscdr_sCFAddress , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SCFAddress },
2629 { &hf_gprscdr_serviceKey , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
2630 { &hf_gprscdr_defaultSMSHandling, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
2631 { &hf_gprscdr_cAMELCallingPartyNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallingNumber },
2632 { &hf_gprscdr_cAMELDestinationSubscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SmsTpDestinationNumber },
2633 { &hf_gprscdr_cAMELSMSCAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
2634 { &hf_gprscdr_freeFormatData, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FreeFormatData },
2635 { &hf_gprscdr_smsReferenceNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
2636 { NULL, 0, 0, 0, NULL }
2637 };
2638
2639 static int
dissect_gprscdr_CAMELInformationSMS(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2640 dissect_gprscdr_CAMELInformationSMS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2641 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2642 CAMELInformationSMS_set, hf_index, ett_gprscdr_CAMELInformationSMS);
2643
2644 return offset;
2645 }
2646
2647
2648 static const ber_sequence_t SGSNSMORecordV651_set[] = {
2649 { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
2650 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2651 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2652 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2653 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
2654 { &hf_gprscdr_serviceCentre, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
2655 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
2656 { &hf_gprscdr_locationArea, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
2657 { &hf_gprscdr_routingArea , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
2658 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
2659 { &hf_gprscdr_messageReference, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_MessageReference },
2660 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2661 { &hf_gprscdr_smsResult , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_SMSResult },
2662 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2663 { &hf_gprscdr_nodeID , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2664 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2665 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2666 { &hf_gprscdr_rATType , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2667 { &hf_gprscdr_destinationNumber, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SmsTpDestinationNumber },
2668 { &hf_gprscdr_cAMELInformationSMS, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationSMS },
2669 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2670 { NULL, 0, 0, 0, NULL }
2671 };
2672
2673 static int
dissect_gprscdr_SGSNSMORecordV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2674 dissect_gprscdr_SGSNSMORecordV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2675 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2676 SGSNSMORecordV651_set, hf_index, ett_gprscdr_SGSNSMORecordV651);
2677
2678 return offset;
2679 }
2680
2681
2682 static const ber_sequence_t SGSNSMTRecordV651_set[] = {
2683 { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
2684 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2685 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2686 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2687 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
2688 { &hf_gprscdr_serviceCentre, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
2689 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
2690 { &hf_gprscdr_locationArea, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
2691 { &hf_gprscdr_routingArea , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
2692 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
2693 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2694 { &hf_gprscdr_smsResult , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_SMSResult },
2695 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2696 { &hf_gprscdr_nodeID , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2697 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2698 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2699 { &hf_gprscdr_rATType , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2700 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2701 { &hf_gprscdr_cAMELInformationSMS, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationSMS },
2702 { NULL, 0, 0, 0, NULL }
2703 };
2704
2705 static int
dissect_gprscdr_SGSNSMTRecordV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2706 dissect_gprscdr_SGSNSMTRecordV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2707 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2708 SGSNSMTRecordV651_set, hf_index, ett_gprscdr_SGSNSMTRecordV651);
2709
2710 return offset;
2711 }
2712
2713
2714 static const ber_sequence_t PSFurnishChargingInformation_sequence[] = {
2715 { &hf_gprscdr_pSFreeFormatData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_FreeFormatData },
2716 { &hf_gprscdr_pSFFDAppendIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FFDAppendIndicator },
2717 { NULL, 0, 0, 0, NULL }
2718 };
2719
2720 static int
dissect_gprscdr_PSFurnishChargingInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2721 dissect_gprscdr_PSFurnishChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2722 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2723 PSFurnishChargingInformation_sequence, hf_index, ett_gprscdr_PSFurnishChargingInformation);
2724
2725 return offset;
2726 }
2727
2728
2729
2730 static int
dissect_gprscdr_T_userLocationInformation_02(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2731 dissect_gprscdr_T_userLocationInformation_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2732 #line 179 "./asn1/gprscdr/gprscdr.cnf"
2733
2734 offset = dissect_gprscdr_uli(tvb, actx, tree, 1);
2735
2736
2737
2738 return offset;
2739 }
2740
2741
2742
2743 static int
dissect_gprscdr_RatingGroupId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2744 dissect_gprscdr_RatingGroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2745 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2746 NULL);
2747
2748 return offset;
2749 }
2750
2751
2752
2753 static int
dissect_gprscdr_ChargingRuleBaseName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2754 dissect_gprscdr_ChargingRuleBaseName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
2756 actx, tree, tvb, offset, hf_index,
2757 NULL);
2758
2759 return offset;
2760 }
2761
2762
2763
2764 static int
dissect_gprscdr_ResultCode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2765 dissect_gprscdr_ResultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2766 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2767 NULL);
2768
2769 return offset;
2770 }
2771
2772
2773 static int * const ServiceConditionChangeV651_bits[] = {
2774 &hf_gprscdr_ServiceConditionChangeV651_qoSChange,
2775 &hf_gprscdr_ServiceConditionChangeV651_sGSNChange,
2776 &hf_gprscdr_ServiceConditionChangeV651_sGSNPLMNIDChange,
2777 &hf_gprscdr_ServiceConditionChangeV651_tariffTimeSwitch,
2778 &hf_gprscdr_ServiceConditionChangeV651_pDPContextRelease,
2779 &hf_gprscdr_ServiceConditionChangeV651_rATChange,
2780 &hf_gprscdr_ServiceConditionChangeV651_serviceIdledOut,
2781 &hf_gprscdr_ServiceConditionChangeV651_qCTExpiry,
2782 &hf_gprscdr_ServiceConditionChangeV651_configurationChange,
2783 &hf_gprscdr_ServiceConditionChangeV651_serviceStop,
2784 &hf_gprscdr_ServiceConditionChangeV651_timeThresholdReached,
2785 &hf_gprscdr_ServiceConditionChangeV651_volumeThresholdReached,
2786 &hf_gprscdr_ServiceConditionChangeV651_spare_bit12,
2787 &hf_gprscdr_ServiceConditionChangeV651_timeExhausted,
2788 &hf_gprscdr_ServiceConditionChangeV651_volumeExhausted,
2789 &hf_gprscdr_ServiceConditionChangeV651_timeout,
2790 &hf_gprscdr_ServiceConditionChangeV651_returnRequested,
2791 &hf_gprscdr_ServiceConditionChangeV651_reauthorisationRequest,
2792 &hf_gprscdr_ServiceConditionChangeV651_continueOngoingSession,
2793 &hf_gprscdr_ServiceConditionChangeV651_retryAndTerminateOngoingSession,
2794 &hf_gprscdr_ServiceConditionChangeV651_terminateOngoingSession,
2795 NULL
2796 };
2797
2798 static int
dissect_gprscdr_ServiceConditionChangeV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2799 dissect_gprscdr_ServiceConditionChangeV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2800 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2801 ServiceConditionChangeV651_bits, 21, hf_index, ett_gprscdr_ServiceConditionChangeV651,
2802 NULL);
2803
2804 return offset;
2805 }
2806
2807
2808
2809 static int
dissect_gprscdr_ServiceIdentifier(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2810 dissect_gprscdr_ServiceIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2811 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2812 NULL);
2813
2814 return offset;
2815 }
2816
2817
2818 static const ber_sequence_t ChangeOfServiceConditionV651_sequence[] = {
2819 { &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
2820 { &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName },
2821 { &hf_gprscdr_resultCode , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ResultCode },
2822 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2823 { &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2824 { &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2825 { &hf_gprscdr_timeUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
2826 { &hf_gprscdr_serviceConditionChange, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChangeV651 },
2827 { &hf_gprscdr_qoSInformationNeg, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
2828 { &hf_gprscdr_sgsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2829 { &hf_gprscdr_sGSNPLMNIdentifier, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2830 { &hf_gprscdr_datavolumeFBCUplink, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
2831 { &hf_gprscdr_datavolumeFBCDownlink, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
2832 { &hf_gprscdr_timeOfReport, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2833 { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2834 { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
2835 { &hf_gprscdr_serviceIdentifier, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceIdentifier },
2836 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
2837 { NULL, 0, 0, 0, NULL }
2838 };
2839
2840 static int
dissect_gprscdr_ChangeOfServiceConditionV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2841 dissect_gprscdr_ChangeOfServiceConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2842 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2843 ChangeOfServiceConditionV651_sequence, hf_index, ett_gprscdr_ChangeOfServiceConditionV651);
2844
2845 return offset;
2846 }
2847
2848
2849 static const ber_sequence_t SEQUENCE_OF_ChangeOfServiceConditionV651_sequence_of[1] = {
2850 { &hf_gprscdr_listOfServiceData_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfServiceConditionV651 },
2851 };
2852
2853 static int
dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2854 dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2855 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2856 SEQUENCE_OF_ChangeOfServiceConditionV651_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651);
2857
2858 return offset;
2859 }
2860
2861
2862 static const ber_sequence_t EGSNPDPRecord_set[] = {
2863 { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
2864 { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
2865 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2866 { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2867 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
2868 { &hf_gprscdr_sgsnAddress , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
2869 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
2870 { &hf_gprscdr_pdpType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
2871 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
2872 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
2873 { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
2874 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2875 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
2876 { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
2877 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
2878 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
2879 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2880 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2881 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2882 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
2883 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2884 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2885 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2886 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
2887 { &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
2888 { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2889 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
2890 { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2891 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2892 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
2893 { &hf_gprscdr_userLocationInformation_02, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_02 },
2894 { &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
2895 { &hf_gprscdr_listOfServiceData, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651 },
2896 { NULL, 0, 0, 0, NULL }
2897 };
2898
2899 static int
dissect_gprscdr_EGSNPDPRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2900 dissect_gprscdr_EGSNPDPRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2901 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2902 EGSNPDPRecord_set, hf_index, ett_gprscdr_EGSNPDPRecord);
2903
2904 return offset;
2905 }
2906
2907
2908 const value_string gprscdr_GPRSCallEventRecord_vals[] = {
2909 { 20, "sgsnPDPRecord" },
2910 { 21, "ggsnPDPRecord" },
2911 { 22, "sgsnMMRecord" },
2912 { 23, "sgsnSMORecord" },
2913 { 24, "sgsnSMTRecord" },
2914 { 28, "egsnPDPRecord" },
2915 { 0, NULL }
2916 };
2917
2918 static const ber_choice_t GPRSCallEventRecord_choice[] = {
2919 { 20, &hf_gprscdr_sgsnPDPRecord, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPDPRecordV651 },
2920 { 21, &hf_gprscdr_ggsnPDPRecord, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNPDPRecord },
2921 { 22, &hf_gprscdr_sgsnMMRecord, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMMRecord },
2922 { 23, &hf_gprscdr_sgsnSMORecord, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecordV651 },
2923 { 24, &hf_gprscdr_sgsnSMTRecord, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecordV651 },
2924 { 28, &hf_gprscdr_egsnPDPRecord, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_gprscdr_EGSNPDPRecord },
2925 { 0, NULL, 0, 0, 0, NULL }
2926 };
2927
2928 int
dissect_gprscdr_GPRSCallEventRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2929 dissect_gprscdr_GPRSCallEventRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2930 offset = dissect_ber_choice(actx, tree, tvb, offset,
2931 GPRSCallEventRecord_choice, hf_index, ett_gprscdr_GPRSCallEventRecord,
2932 NULL);
2933
2934 return offset;
2935 }
2936
2937
2938
2939 static int
dissect_gprscdr_T_userLocationInformation_01(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2940 dissect_gprscdr_T_userLocationInformation_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2941 #line 175 "./asn1/gprscdr/gprscdr.cnf"
2942
2943 offset = dissect_gprscdr_uli(tvb, actx, tree, 1);
2944
2945
2946
2947 return offset;
2948 }
2949
2950
2951 static const ber_sequence_t GGSNPDPRecordV750_set[] = {
2952 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
2953 { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
2954 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
2955 { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
2956 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
2957 { &hf_gprscdr_sgsnAddress , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
2958 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
2959 { &hf_gprscdr_pdpType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
2960 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
2961 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
2962 { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
2963 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
2964 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
2965 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
2966 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
2967 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
2968 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
2969 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
2970 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
2971 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
2972 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
2973 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
2974 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
2975 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
2976 { &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
2977 { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
2978 { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
2979 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
2980 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
2981 { &hf_gprscdr_userLocationInformation_01, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_01 },
2982 { &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
2983 { NULL, 0, 0, 0, NULL }
2984 };
2985
2986 static int
dissect_gprscdr_GGSNPDPRecordV750(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2987 dissect_gprscdr_GGSNPDPRecordV750(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2988 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2989 GGSNPDPRecordV750_set, hf_index, ett_gprscdr_GGSNPDPRecordV750);
2990
2991 return offset;
2992 }
2993
2994
2995
2996 static int
dissect_gprscdr_T_userLocationInformation_03(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2997 dissect_gprscdr_T_userLocationInformation_03(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2998 #line 183 "./asn1/gprscdr/gprscdr.cnf"
2999
3000 offset = dissect_gprscdr_uli(tvb, actx, tree, 1);
3001
3002
3003
3004 return offset;
3005 }
3006
3007
3008 static int * const ServiceConditionChangeV750_bits[] = {
3009 &hf_gprscdr_ServiceConditionChangeV750_qoSChange,
3010 &hf_gprscdr_ServiceConditionChangeV750_sGSNChange,
3011 &hf_gprscdr_ServiceConditionChangeV750_sGSNPLMNIDChange,
3012 &hf_gprscdr_ServiceConditionChangeV750_tariffTimeSwitch,
3013 &hf_gprscdr_ServiceConditionChangeV750_pDPContextRelease,
3014 &hf_gprscdr_ServiceConditionChangeV750_rATChange,
3015 &hf_gprscdr_ServiceConditionChangeV750_serviceIdledOut,
3016 &hf_gprscdr_ServiceConditionChangeV750_reserved,
3017 &hf_gprscdr_ServiceConditionChangeV750_configurationChange,
3018 &hf_gprscdr_ServiceConditionChangeV750_serviceStop,
3019 &hf_gprscdr_ServiceConditionChangeV750_dCCATimeThresholdReached,
3020 &hf_gprscdr_ServiceConditionChangeV750_dCCAVolumeThresholdReached,
3021 &hf_gprscdr_ServiceConditionChangeV750_dCCAServiceSpecificUnitThresholdReached,
3022 &hf_gprscdr_ServiceConditionChangeV750_dCCATimeExhausted,
3023 &hf_gprscdr_ServiceConditionChangeV750_dCCAVolumeExhausted,
3024 &hf_gprscdr_ServiceConditionChangeV750_dCCAValidityTimeout,
3025 &hf_gprscdr_ServiceConditionChangeV750_reserved2,
3026 &hf_gprscdr_ServiceConditionChangeV750_dCCAReauthorisationRequest,
3027 &hf_gprscdr_ServiceConditionChangeV750_dCCAContinueOngoingSession,
3028 &hf_gprscdr_ServiceConditionChangeV750_dCCARetryAndTerminateOngoingSession,
3029 &hf_gprscdr_ServiceConditionChangeV750_dCCATerminateOngoingSession,
3030 &hf_gprscdr_ServiceConditionChangeV750_cGI_SAIChange,
3031 &hf_gprscdr_ServiceConditionChangeV750_rAIChange,
3032 &hf_gprscdr_ServiceConditionChangeV750_dCCAServiceSpecificUnitExhausted,
3033 &hf_gprscdr_ServiceConditionChangeV750_recordClosure,
3034 &hf_gprscdr_ServiceConditionChangeV750_timeLimit,
3035 &hf_gprscdr_ServiceConditionChangeV750_volumeLimit,
3036 &hf_gprscdr_ServiceConditionChangeV750_serviceSpecificUnitLimit,
3037 &hf_gprscdr_ServiceConditionChangeV750_envelopeClosure,
3038 NULL
3039 };
3040
3041 static int
dissect_gprscdr_ServiceConditionChangeV750(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3042 dissect_gprscdr_ServiceConditionChangeV750(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3043 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3044 ServiceConditionChangeV750_bits, 29, hf_index, ett_gprscdr_ServiceConditionChangeV750,
3045 NULL);
3046
3047 return offset;
3048 }
3049
3050
3051
3052 static int
dissect_gprscdr_AFChargingIdentifier(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3053 dissect_gprscdr_AFChargingIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3054 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3055 NULL);
3056
3057 return offset;
3058 }
3059
3060
3061 static const ber_sequence_t T_flowNumber_sequence_of[1] = {
3062 { &hf_gprscdr_flowNumber_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gprscdr_INTEGER },
3063 };
3064
3065 static int
dissect_gprscdr_T_flowNumber(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3066 dissect_gprscdr_T_flowNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3067 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3068 T_flowNumber_sequence_of, hf_index, ett_gprscdr_T_flowNumber);
3069
3070 return offset;
3071 }
3072
3073
3074 static const ber_sequence_t Flows_sequence[] = {
3075 { &hf_gprscdr_mediaComponentNumber, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3076 { &hf_gprscdr_flowNumber , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_flowNumber },
3077 { NULL, 0, 0, 0, NULL }
3078 };
3079
3080 static int
dissect_gprscdr_Flows(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3081 dissect_gprscdr_Flows(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3082 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3083 Flows_sequence, hf_index, ett_gprscdr_Flows);
3084
3085 return offset;
3086 }
3087
3088
3089 static const ber_sequence_t AFRecordInformation_sequence[] = {
3090 { &hf_gprscdr_aFChargingIdentifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_AFChargingIdentifier },
3091 { &hf_gprscdr_flows , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_Flows },
3092 { NULL, 0, 0, 0, NULL }
3093 };
3094
3095 static int
dissect_gprscdr_AFRecordInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3096 dissect_gprscdr_AFRecordInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3097 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3098 AFRecordInformation_sequence, hf_index, ett_gprscdr_AFRecordInformation);
3099
3100 return offset;
3101 }
3102
3103
3104 static const ber_sequence_t SEQUENCE_OF_AFRecordInformation_sequence_of[1] = {
3105 { &hf_gprscdr_aFRecordInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_AFRecordInformation },
3106 };
3107
3108 static int
dissect_gprscdr_SEQUENCE_OF_AFRecordInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3109 dissect_gprscdr_SEQUENCE_OF_AFRecordInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3110 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3111 SEQUENCE_OF_AFRecordInformation_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_AFRecordInformation);
3112
3113 return offset;
3114 }
3115
3116
3117
3118 static int
dissect_gprscdr_T_userLocationInformation_05(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3119 dissect_gprscdr_T_userLocationInformation_05(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3120 #line 191 "./asn1/gprscdr/gprscdr.cnf"
3121
3122 offset = dissect_gprscdr_uli(tvb, actx, tree, 1);
3123
3124
3125
3126 return offset;
3127 }
3128
3129
3130 static const ber_sequence_t SEQUENCE_OF_TimeStamp_sequence_of[1] = {
3131 { &hf_gprscdr_eventTimeStamps_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gprscdr_TimeStamp },
3132 };
3133
3134 static int
dissect_gprscdr_SEQUENCE_OF_TimeStamp(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3135 dissect_gprscdr_SEQUENCE_OF_TimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3136 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3137 SEQUENCE_OF_TimeStamp_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_TimeStamp);
3138
3139 return offset;
3140 }
3141
3142
3143 static const ber_sequence_t EventBasedChargingInformation_sequence[] = {
3144 { &hf_gprscdr_numberOfEvents, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3145 { &hf_gprscdr_eventTimeStamps, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_TimeStamp },
3146 { NULL, 0, 0, 0, NULL }
3147 };
3148
3149 static int
dissect_gprscdr_EventBasedChargingInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3150 dissect_gprscdr_EventBasedChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3151 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3152 EventBasedChargingInformation_sequence, hf_index, ett_gprscdr_EventBasedChargingInformation);
3153
3154 return offset;
3155 }
3156
3157
3158 static const value_string gprscdr_TimeQuotaType_vals[] = {
3159 { 0, "dISCRETETIMEPERIOD" },
3160 { 1, "cONTINUOUSTIMEPERIOD" },
3161 { 0, NULL }
3162 };
3163
3164
3165 static int
dissect_gprscdr_TimeQuotaType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3166 dissect_gprscdr_TimeQuotaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3167 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3168 NULL);
3169
3170 return offset;
3171 }
3172
3173
3174 static const ber_sequence_t TimeQuotaMechanism_sequence[] = {
3175 { &hf_gprscdr_timeQuotaType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeQuotaType },
3176 { &hf_gprscdr_baseTimeInterval, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3177 { NULL, 0, 0, 0, NULL }
3178 };
3179
3180 static int
dissect_gprscdr_TimeQuotaMechanism(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3181 dissect_gprscdr_TimeQuotaMechanism(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3182 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3183 TimeQuotaMechanism_sequence, hf_index, ett_gprscdr_TimeQuotaMechanism);
3184
3185 return offset;
3186 }
3187
3188
3189 static const ber_sequence_t ChangeOfServiceConditionV750_sequence[] = {
3190 { &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
3191 { &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName },
3192 { &hf_gprscdr_resultCode , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ResultCode },
3193 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3194 { &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3195 { &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3196 { &hf_gprscdr_timeUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
3197 { &hf_gprscdr_serviceConditionChangeV750, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChangeV750 },
3198 { &hf_gprscdr_qoSInformationNeg, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
3199 { &hf_gprscdr_sgsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3200 { &hf_gprscdr_sGSNPLMNIdentifier, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3201 { &hf_gprscdr_datavolumeFBCUplink, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
3202 { &hf_gprscdr_datavolumeFBCDownlink, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
3203 { &hf_gprscdr_timeOfReport, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3204 { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3205 { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
3206 { &hf_gprscdr_serviceIdentifier, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceIdentifier },
3207 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
3208 { &hf_gprscdr_aFRecordInformation, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_AFRecordInformation },
3209 { &hf_gprscdr_userLocationInformation_05, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_05 },
3210 { &hf_gprscdr_eventBasedChargingInformation, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EventBasedChargingInformation },
3211 { &hf_gprscdr_timeQuotaMechanism, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeQuotaMechanism },
3212 { NULL, 0, 0, 0, NULL }
3213 };
3214
3215 static int
dissect_gprscdr_ChangeOfServiceConditionV750(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3216 dissect_gprscdr_ChangeOfServiceConditionV750(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3217 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3218 ChangeOfServiceConditionV750_sequence, hf_index, ett_gprscdr_ChangeOfServiceConditionV750);
3219
3220 return offset;
3221 }
3222
3223
3224 static const ber_sequence_t SEQUENCE_OF_ChangeOfServiceConditionV750_sequence_of[1] = {
3225 { &hf_gprscdr_listOfServiceData_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfServiceConditionV750 },
3226 };
3227
3228 static int
dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3229 dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3230 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3231 SEQUENCE_OF_ChangeOfServiceConditionV750_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750);
3232
3233 return offset;
3234 }
3235
3236
3237 static const ber_sequence_t EGSNPDPRecordV750_set[] = {
3238 { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
3239 { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
3240 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3241 { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3242 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
3243 { &hf_gprscdr_sgsnAddress , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
3244 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
3245 { &hf_gprscdr_pdpType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
3246 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
3247 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
3248 { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
3249 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3250 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
3251 { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
3252 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
3253 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3254 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3255 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3256 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3257 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
3258 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3259 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3260 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3261 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3262 { &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3263 { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3264 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
3265 { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
3266 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3267 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
3268 { &hf_gprscdr_userLocationInformation_03, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_03 },
3269 { &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3270 { &hf_gprscdr_listOfServiceData_01, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750 },
3271 { NULL, 0, 0, 0, NULL }
3272 };
3273
3274 static int
dissect_gprscdr_EGSNPDPRecordV750(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3275 dissect_gprscdr_EGSNPDPRecordV750(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3276 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3277 EGSNPDPRecordV750_set, hf_index, ett_gprscdr_EGSNPDPRecordV750);
3278
3279 return offset;
3280 }
3281
3282
3283 static const value_string gprscdr_ChangeCondition_vals[] = {
3284 { 0, "qoSChange" },
3285 { 1, "tariffTime" },
3286 { 2, "recordClosure" },
3287 { 3, "failureHandlingContinueOngoing" },
3288 { 4, "failureHandlingRetryandTerminateOngoing" },
3289 { 5, "failureHandlingTerminateOngoing" },
3290 { 6, "cGI-SAICHange" },
3291 { 7, "rAIChange" },
3292 { 8, "dT-Establishment" },
3293 { 9, "dT-Removal" },
3294 { 10, "eCGIChange" },
3295 { 11, "tAIChange" },
3296 { 12, "userLocationChange" },
3297 { 13, "userCSGInformationChange" },
3298 { 14, "presenceInPRAChange" },
3299 { 15, "removalOfAccess" },
3300 { 16, "unusabilityOfAccess" },
3301 { 17, "indirectChangeCondition" },
3302 { 18, "userPlaneToUEChange" },
3303 { 19, "servingPLMNRateControlChange" },
3304 { 20, "threeGPPPSDataOffStatusChange" },
3305 { 21, "aPNRateControlChange" },
3306 { 0, NULL }
3307 };
3308
3309
3310 static int
dissect_gprscdr_ChangeCondition(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3311 dissect_gprscdr_ChangeCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3312 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3313 NULL);
3314
3315 return offset;
3316 }
3317
3318
3319
3320 static int
dissect_gprscdr_T_userLocationInformation_08(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3321 dissect_gprscdr_T_userLocationInformation_08(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3322 #line 211 "./asn1/gprscdr/gprscdr.cnf"
3323
3324 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
3325
3326
3327
3328 return offset;
3329 }
3330
3331
3332
3333 static int
dissect_gprscdr_T_aRP(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3334 dissect_gprscdr_T_aRP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3335 #line 154 "./asn1/gprscdr/gprscdr.cnf"
3336 proto_tree *ext_tree_arp;
3337 guint length;
3338
3339 /*
3340 * 8.86 Allocation/Retention Priority (ARP)
3341 * 3GPP TS 29.274
3342 */
3343
3344 length = tvb_reported_length(tvb);
3345 ext_tree_arp = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_eps_qos_arp, NULL, "aRP");
3346
3347 dissect_gtpv2_arp(tvb, actx->pinfo, ext_tree_arp, NULL, length, 0, 0, NULL);
3348
3349 offset = length;
3350
3351
3352
3353
3354 return offset;
3355 }
3356
3357
3358 static const ber_sequence_t EPCQoSInformation_sequence[] = {
3359 { &hf_gprscdr_qCI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3360 { &hf_gprscdr_maxRequestedBandwithUL, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3361 { &hf_gprscdr_maxRequestedBandwithDL, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3362 { &hf_gprscdr_guaranteedBitrateUL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3363 { &hf_gprscdr_guaranteedBitrateDL, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3364 { &hf_gprscdr_aRP , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_aRP },
3365 { &hf_gprscdr_aPNAggregateMaxBitrateUL, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3366 { &hf_gprscdr_aPNAggregateMaxBitrateDL, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3367 { &hf_gprscdr_extendedMaxRequestedBWUL, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3368 { &hf_gprscdr_extendedMaxRequestedBWDL, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3369 { &hf_gprscdr_extendedGBRUL, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3370 { &hf_gprscdr_extendedGBRDL, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3371 { &hf_gprscdr_extendedAPNAMBRUL, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3372 { &hf_gprscdr_extendedAPNAMBRDL, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3373 { NULL, 0, 0, 0, NULL }
3374 };
3375
3376 static int
dissect_gprscdr_EPCQoSInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3377 dissect_gprscdr_EPCQoSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3378 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3379 EPCQoSInformation_sequence, hf_index, ett_gprscdr_EPCQoSInformation);
3380
3381 return offset;
3382 }
3383
3384
3385 static const value_string gprscdr_PresenceReportingAreaStatus_vals[] = {
3386 { 0, "insideArea" },
3387 { 1, "outsideArea" },
3388 { 2, "inactive" },
3389 { 3, "unknown" },
3390 { 0, NULL }
3391 };
3392
3393
3394 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_)3395 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_) {
3396 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3397 NULL);
3398
3399 return offset;
3400 }
3401
3402
3403
3404 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_)3405 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_) {
3406 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3407 NULL);
3408
3409 return offset;
3410 }
3411
3412
3413 static const value_string gprscdr_CSGAccessMode_vals[] = {
3414 { 0, "closedMode" },
3415 { 1, "hybridMode" },
3416 { 0, NULL }
3417 };
3418
3419
3420 static int
dissect_gprscdr_CSGAccessMode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3421 dissect_gprscdr_CSGAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3422 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3423 NULL);
3424
3425 return offset;
3426 }
3427
3428
3429 static const ber_sequence_t UserCSGInformation_sequence[] = {
3430 { &hf_gprscdr_cSGId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CSGId },
3431 { &hf_gprscdr_cSGAccessMode, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_CSGAccessMode },
3432 { &hf_gprscdr_cSGMembershipIndication, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3433 { NULL, 0, 0, 0, NULL }
3434 };
3435
3436 static int
dissect_gprscdr_UserCSGInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3437 dissect_gprscdr_UserCSGInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3438 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3439 UserCSGInformation_sequence, hf_index, ett_gprscdr_UserCSGInformation);
3440
3441 return offset;
3442 }
3443
3444
3445
3446 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_)3447 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_) {
3448 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3449 NULL);
3450
3451 return offset;
3452 }
3453
3454
3455
3456 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_)3457 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_) {
3458 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3459 NULL);
3460
3461 return offset;
3462 }
3463
3464
3465 static const ber_sequence_t WLANOperatorId_sequence[] = {
3466 { &hf_gprscdr_wLANOperatorName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3467 { &hf_gprscdr_wLANPLMNId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3468 { NULL, 0, 0, 0, NULL }
3469 };
3470
3471 static int
dissect_gprscdr_WLANOperatorId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3472 dissect_gprscdr_WLANOperatorId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3473 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3474 WLANOperatorId_sequence, hf_index, ett_gprscdr_WLANOperatorId);
3475
3476 return offset;
3477 }
3478
3479
3480 static const ber_sequence_t UWANUserLocationInfo_sequence[] = {
3481 { &hf_gprscdr_uELocalIPAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_IPAddress },
3482 { &hf_gprscdr_uDPSourcePort, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING_SIZE_2 },
3483 { &hf_gprscdr_sSID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3484 { &hf_gprscdr_bSSID , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3485 { &hf_gprscdr_tCPSourcePort, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING_SIZE_2 },
3486 { &hf_gprscdr_civicAddressInformation, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CivicAddressInformation },
3487 { &hf_gprscdr_wLANOperatorId, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_WLANOperatorId },
3488 { &hf_gprscdr_logicalAccessID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3489 { NULL, 0, 0, 0, NULL }
3490 };
3491
3492 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_)3493 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_) {
3494 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3495 UWANUserLocationInfo_sequence, hf_index, ett_gprscdr_UWANUserLocationInfo);
3496
3497 return offset;
3498 }
3499
3500
3501
3502 static int
dissect_gprscdr_T_userLocationInformation_10(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3503 dissect_gprscdr_T_userLocationInformation_10(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3504 #line 219 "./asn1/gprscdr/gprscdr.cnf"
3505
3506 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
3507
3508
3509
3510 return offset;
3511 }
3512
3513
3514 static const ber_sequence_t RelatedChangeOfCharCondition_sequence[] = {
3515 { &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
3516 { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3517 { &hf_gprscdr_userLocationInformation_11, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_10 },
3518 { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus },
3519 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
3520 { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3521 { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo },
3522 { NULL, 0, 0, 0, NULL }
3523 };
3524
3525 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_)3526 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_) {
3527 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3528 RelatedChangeOfCharCondition_sequence, hf_index, ett_gprscdr_RelatedChangeOfCharCondition);
3529
3530 return offset;
3531 }
3532
3533
3534
3535 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_)3536 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_) {
3537 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
3538
3539 return offset;
3540 }
3541
3542
3543 static const ber_sequence_t ServingPLMNRateControl_sequence[] = {
3544 { &hf_gprscdr_sPLMNDLRateControlValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3545 { &hf_gprscdr_sPLMNULRateControlValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3546 { NULL, 0, 0, 0, NULL }
3547 };
3548
3549 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_)3550 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_) {
3551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3552 ServingPLMNRateControl_sequence, hf_index, ett_gprscdr_ServingPLMNRateControl);
3553
3554 return offset;
3555 }
3556
3557
3558
3559 static int
dissect_gprscdr_PresenceReportingAreaElementsList(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3560 dissect_gprscdr_PresenceReportingAreaElementsList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3561 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3562 NULL);
3563
3564 return offset;
3565 }
3566
3567
3568 static int * const PresenceReportingAreaNode_bits[] = {
3569 &hf_gprscdr_PresenceReportingAreaNode_oCS,
3570 &hf_gprscdr_PresenceReportingAreaNode_pCRF,
3571 NULL
3572 };
3573
3574 static int
dissect_gprscdr_PresenceReportingAreaNode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3575 dissect_gprscdr_PresenceReportingAreaNode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3576 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3577 PresenceReportingAreaNode_bits, 2, hf_index, ett_gprscdr_PresenceReportingAreaNode,
3578 NULL);
3579
3580 return offset;
3581 }
3582
3583
3584 static const ber_sequence_t PresenceReportingAreaInfo_sequence[] = {
3585 { &hf_gprscdr_presenceReportingAreaIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3586 { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus },
3587 { &hf_gprscdr_presenceReportingAreaElementsList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaElementsList },
3588 { &hf_gprscdr_presenceReportingAreaNode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaNode },
3589 { NULL, 0, 0, 0, NULL }
3590 };
3591
3592 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_)3593 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_) {
3594 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3595 PresenceReportingAreaInfo_sequence, hf_index, ett_gprscdr_PresenceReportingAreaInfo);
3596
3597 return offset;
3598 }
3599
3600
3601 static const ber_sequence_t SEQUENCE_OF_PresenceReportingAreaInfo_sequence_of[1] = {
3602 { &hf_gprscdr_listOfPresenceReportingAreaInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_PresenceReportingAreaInfo },
3603 };
3604
3605 static int
dissect_gprscdr_SEQUENCE_OF_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_)3606 dissect_gprscdr_SEQUENCE_OF_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_) {
3607 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3608 SEQUENCE_OF_PresenceReportingAreaInfo_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo);
3609
3610 return offset;
3611 }
3612
3613
3614 static const value_string gprscdr_AdditionalExceptionReports_vals[] = {
3615 { 0, "notAllowed" },
3616 { 1, "allowed" },
3617 { 0, NULL }
3618 };
3619
3620
3621 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_)3622 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_) {
3623 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3624 NULL);
3625
3626 return offset;
3627 }
3628
3629
3630 static const value_string gprscdr_RateControlTimeUnit_vals[] = {
3631 { 0, "unrestricted" },
3632 { 1, "minute" },
3633 { 2, "hour" },
3634 { 3, "day" },
3635 { 4, "week" },
3636 { 0, NULL }
3637 };
3638
3639
3640 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_)3641 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_) {
3642 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3643 NULL);
3644
3645 return offset;
3646 }
3647
3648
3649 static const ber_sequence_t APNRateControlParameters_sequence[] = {
3650 { &hf_gprscdr_additionalExceptionReports, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AdditionalExceptionReports },
3651 { &hf_gprscdr_rateControlTimeUnit, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RateControlTimeUnit },
3652 { &hf_gprscdr_rateControlMaxRate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3653 { &hf_gprscdr_rateControlMaxMessageSize, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
3654 { NULL, 0, 0, 0, NULL }
3655 };
3656
3657 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_)3658 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_) {
3659 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3660 APNRateControlParameters_sequence, hf_index, ett_gprscdr_APNRateControlParameters);
3661
3662 return offset;
3663 }
3664
3665
3666 static const ber_sequence_t APNRateControl_sequence[] = {
3667 { &hf_gprscdr_aPNRateControlUplink, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControlParameters },
3668 { &hf_gprscdr_aPNRateControlDownlink, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControlParameters },
3669 { NULL, 0, 0, 0, NULL }
3670 };
3671
3672 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_)3673 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_) {
3674 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3675 APNRateControl_sequence, hf_index, ett_gprscdr_APNRateControl);
3676
3677 return offset;
3678 }
3679
3680
3681 static const ber_sequence_t ChangeOfCharCondition_sequence[] = {
3682 { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
3683 { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
3684 { &hf_gprscdr_dataVolumeGPRSUplink, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
3685 { &hf_gprscdr_dataVolumeGPRSDownlink, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
3686 { &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
3687 { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3688 { &hf_gprscdr_userLocationInformation_09, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_08 },
3689 { &hf_gprscdr_ePCQoSInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
3690 { &hf_gprscdr_chargingID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
3691 { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus },
3692 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
3693 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
3694 { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics },
3695 { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3696 { &hf_gprscdr_accessAvailabilityChangeReason, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessAvailabilityChangeReason },
3697 { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo },
3698 { &hf_gprscdr_relatedChangeOfCharCondition, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RelatedChangeOfCharCondition },
3699 { &hf_gprscdr_cPCIoTEPSOptimisationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CPCIoTEPSOptimisationIndicator },
3700 { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl },
3701 { &hf_gprscdr_threeGPPPSDataOffStatus, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ThreeGPPPSDataOffStatus },
3702 { &hf_gprscdr_listOfPresenceReportingAreaInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo },
3703 { &hf_gprscdr_aPNRateControl, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControl },
3704 { NULL, 0, 0, 0, NULL }
3705 };
3706
3707 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_)3708 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_) {
3709 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3710 ChangeOfCharCondition_sequence, hf_index, ett_gprscdr_ChangeOfCharCondition);
3711
3712 return offset;
3713 }
3714
3715
3716 static const ber_sequence_t SEQUENCE_OF_ChangeOfCharCondition_sequence_of[1] = {
3717 { &hf_gprscdr_listOfTrafficVolumes_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharCondition },
3718 };
3719
3720 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_)3721 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_) {
3722 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3723 SEQUENCE_OF_ChangeOfCharCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition);
3724
3725 return offset;
3726 }
3727
3728
3729 static const ber_sequence_t SGSNPDPRecord_set[] = {
3730 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
3731 { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
3732 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3733 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
3734 { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3735 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
3736 { &hf_gprscdr_routingArea , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
3737 { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
3738 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
3739 { &hf_gprscdr_chargingID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
3740 { &hf_gprscdr_ggsnAddressUsed, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3741 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
3742 { &hf_gprscdr_pdpType , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
3743 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
3744 { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
3745 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3746 { &hf_gprscdr_duration , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
3747 { &hf_gprscdr_sgsnChange , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNChange },
3748 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
3749 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
3750 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
3751 { &hf_gprscdr_nodeID , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3752 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3753 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3754 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
3755 { &hf_gprscdr_accessPointNameOI, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameOI },
3756 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3757 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3758 { &hf_gprscdr_rATType , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3759 { &hf_gprscdr_cAMELInformationPDP, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationPDP },
3760 { &hf_gprscdr_rNCUnsentDownlinkVolume, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
3761 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3762 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
3763 { &hf_gprscdr_iMSIunauthenticatedFlag, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3764 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
3765 { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
3766 { &hf_gprscdr_lowPriorityIndicator, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3767 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3768 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
3769 { NULL, 0, 0, 0, NULL }
3770 };
3771
3772 static int
dissect_gprscdr_SGSNPDPRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3773 dissect_gprscdr_SGSNPDPRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3774 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3775 SGSNPDPRecord_set, hf_index, ett_gprscdr_SGSNPDPRecord);
3776
3777 return offset;
3778 }
3779
3780
3781 static const value_string gprscdr_ServingNodeType_vals[] = {
3782 { 0, "sGSN" },
3783 { 1, "pMIPSGW" },
3784 { 2, "gTPSGW" },
3785 { 3, "ePDG" },
3786 { 4, "hSGW" },
3787 { 5, "mME" },
3788 { 6, "tWAN" },
3789 { 0, NULL }
3790 };
3791
3792
3793 static int
dissect_gprscdr_ServingNodeType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3794 dissect_gprscdr_ServingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3795 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3796 NULL);
3797
3798 return offset;
3799 }
3800
3801
3802 static const ber_sequence_t SGSNSMORecord_set[] = {
3803 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
3804 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3805 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
3806 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3807 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
3808 { &hf_gprscdr_serviceCentre, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3809 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
3810 { &hf_gprscdr_locationArea, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
3811 { &hf_gprscdr_routingArea , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
3812 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
3813 { &hf_gprscdr_messageReference, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_MessageReference },
3814 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3815 { &hf_gprscdr_smsResult , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_SMSResult },
3816 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3817 { &hf_gprscdr_nodeID , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3818 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3819 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3820 { &hf_gprscdr_rATType , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3821 { &hf_gprscdr_destinationNumber, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SmsTpDestinationNumber },
3822 { &hf_gprscdr_cAMELInformationSMS, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationSMS },
3823 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3824 { &hf_gprscdr_servingNodeType_01, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingNodeType },
3825 { &hf_gprscdr_servingNodeAddress_01, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3826 { &hf_gprscdr_servingNodeiPv6Address_01, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3827 { &hf_gprscdr_mMEName , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity },
3828 { &hf_gprscdr_mMERealm , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity },
3829 { &hf_gprscdr_userLocationInformation_08, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3830 { &hf_gprscdr_retransmission, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3831 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3832 { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3833 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
3834 { NULL, 0, 0, 0, NULL }
3835 };
3836
3837 static int
dissect_gprscdr_SGSNSMORecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3838 dissect_gprscdr_SGSNSMORecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3839 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3840 SGSNSMORecord_set, hf_index, ett_gprscdr_SGSNSMORecord);
3841
3842 return offset;
3843 }
3844
3845
3846 static const ber_sequence_t SGSNSMTRecord_set[] = {
3847 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
3848 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3849 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
3850 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3851 { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
3852 { &hf_gprscdr_serviceCentre, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3853 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
3854 { &hf_gprscdr_locationArea, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
3855 { &hf_gprscdr_routingArea , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
3856 { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
3857 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3858 { &hf_gprscdr_smsResult , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_SMSResult },
3859 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3860 { &hf_gprscdr_nodeID , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3861 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3862 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3863 { &hf_gprscdr_rATType , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3864 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3865 { &hf_gprscdr_cAMELInformationSMS, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationSMS },
3866 { &hf_gprscdr_originatingAddress, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
3867 { &hf_gprscdr_servingNodeType_01, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingNodeType },
3868 { &hf_gprscdr_servingNodeAddress_01, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3869 { &hf_gprscdr_servingNodeiPv6Address_01, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3870 { &hf_gprscdr_mMEName , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity },
3871 { &hf_gprscdr_mMERealm , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DiameterIdentity },
3872 { &hf_gprscdr_userLocationInformation_08, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
3873 { &hf_gprscdr_retransmission, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3874 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3875 { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3876 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
3877 { NULL, 0, 0, 0, NULL }
3878 };
3879
3880 static int
dissect_gprscdr_SGSNSMTRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3881 dissect_gprscdr_SGSNSMTRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3882 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3883 SGSNSMTRecord_set, hf_index, ett_gprscdr_SGSNSMTRecord);
3884
3885 return offset;
3886 }
3887
3888
3889 static const ber_sequence_t SGSNMTLCSRecord_set[] = {
3890 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
3891 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
3892 { &hf_gprscdr_lcsClientType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
3893 { &hf_gprscdr_lcsClientIdentity, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSClientIdentity },
3894 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3895 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3896 { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3897 { &hf_gprscdr_locationType, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
3898 { &hf_gprscdr_lcsQos , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSQoSInfo },
3899 { &hf_gprscdr_lcsPriority , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
3900 { &hf_gprscdr_mlcNumber , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3901 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3902 { &hf_gprscdr_measurementDuration, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
3903 { &hf_gprscdr_notificationToMSUser, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
3904 { &hf_gprscdr_privacyOverride, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
3905 { &hf_gprscdr_location , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaAndCell },
3906 { &hf_gprscdr_routingArea , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
3907 { &hf_gprscdr_locationEstimate, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
3908 { &hf_gprscdr_positioningData, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PositioningData },
3909 { &hf_gprscdr_lcsCause , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSCause },
3910 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
3911 { &hf_gprscdr_nodeID , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3912 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3913 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3914 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3915 { &hf_gprscdr_rATType , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3916 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3917 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
3918 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3919 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
3920 { NULL, 0, 0, 0, NULL }
3921 };
3922
3923 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_)3924 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_) {
3925 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3926 SGSNMTLCSRecord_set, hf_index, ett_gprscdr_SGSNMTLCSRecord);
3927
3928 return offset;
3929 }
3930
3931
3932 static const ber_sequence_t SGSNMOLCSRecord_set[] = {
3933 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
3934 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
3935 { &hf_gprscdr_lcsClientType, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
3936 { &hf_gprscdr_lcsClientIdentity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSClientIdentity },
3937 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3938 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3939 { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3940 { &hf_gprscdr_locationMethod, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
3941 { &hf_gprscdr_lcsQos , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSQoSInfo },
3942 { &hf_gprscdr_lcsPriority , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
3943 { &hf_gprscdr_mlcNumber , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3944 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3945 { &hf_gprscdr_measurementDuration, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
3946 { &hf_gprscdr_location , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaAndCell },
3947 { &hf_gprscdr_routingArea , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
3948 { &hf_gprscdr_locationEstimate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
3949 { &hf_gprscdr_positioningData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PositioningData },
3950 { &hf_gprscdr_lcsCause , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSCause },
3951 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
3952 { &hf_gprscdr_nodeID , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3953 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3954 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3955 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3956 { &hf_gprscdr_rATType , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3957 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3958 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
3959 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
3960 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
3961 { NULL, 0, 0, 0, NULL }
3962 };
3963
3964 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_)3965 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_) {
3966 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3967 SGSNMOLCSRecord_set, hf_index, ett_gprscdr_SGSNMOLCSRecord);
3968
3969 return offset;
3970 }
3971
3972
3973 static const ber_sequence_t SGSNNILCSRecord_set[] = {
3974 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
3975 { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
3976 { &hf_gprscdr_lcsClientType, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
3977 { &hf_gprscdr_lcsClientIdentity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSClientIdentity },
3978 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3979 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
3980 { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
3981 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
3982 { &hf_gprscdr_lcsQos , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSQoSInfo },
3983 { &hf_gprscdr_lcsPriority , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
3984 { &hf_gprscdr_mlcNumber , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3985 { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
3986 { &hf_gprscdr_measurementDuration, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
3987 { &hf_gprscdr_location , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaAndCell },
3988 { &hf_gprscdr_routingArea , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
3989 { &hf_gprscdr_locationEstimate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
3990 { &hf_gprscdr_positioningData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PositioningData },
3991 { &hf_gprscdr_lcsCause , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSCause },
3992 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
3993 { &hf_gprscdr_nodeID , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
3994 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
3995 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
3996 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
3997 { &hf_gprscdr_rATType , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
3998 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
3999 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4000 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4001 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
4002 { NULL, 0, 0, 0, NULL }
4003 };
4004
4005 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_)4006 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_) {
4007 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4008 SGSNNILCSRecord_set, hf_index, ett_gprscdr_SGSNNILCSRecord);
4009
4010 return offset;
4011 }
4012
4013
4014 static const ber_sequence_t SEQUENCE_OF_RAIdentity_sequence_of[1] = {
4015 { &hf_gprscdr_listofRAs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_RAIdentity },
4016 };
4017
4018 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_)4019 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_) {
4020 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4021 SEQUENCE_OF_RAIdentity_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_RAIdentity);
4022
4023 return offset;
4024 }
4025
4026
4027
4028 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_)4029 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_) {
4030 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4031 NULL);
4032
4033 return offset;
4034 }
4035
4036
4037 static const ber_sequence_t ChangeOfMBMSCondition_sequence[] = {
4038 { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
4039 { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
4040 { &hf_gprscdr_dataVolumeMBMSUplink, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeMBMS },
4041 { &hf_gprscdr_dataVolumeMBMSDownlink, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeMBMS },
4042 { &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
4043 { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4044 { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
4045 { NULL, 0, 0, 0, NULL }
4046 };
4047
4048 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_)4049 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_) {
4050 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4051 ChangeOfMBMSCondition_sequence, hf_index, ett_gprscdr_ChangeOfMBMSCondition);
4052
4053 return offset;
4054 }
4055
4056
4057 static const ber_sequence_t SEQUENCE_OF_ChangeOfMBMSCondition_sequence_of[1] = {
4058 { &hf_gprscdr_listOfTrafficVolumes_item_02, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfMBMSCondition },
4059 };
4060
4061 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_)4062 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_) {
4063 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4064 SEQUENCE_OF_ChangeOfMBMSCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition);
4065
4066 return offset;
4067 }
4068
4069
4070 static const ber_sequence_t SGSNMBMSRecord_set[] = {
4071 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4072 { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4073 { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4074 { &hf_gprscdr_listofRAs , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_RAIdentity },
4075 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4076 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4077 { &hf_gprscdr_listOfTrafficVolumes_02, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition },
4078 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4079 { &hf_gprscdr_duration , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4080 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4081 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4082 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4083 { &hf_gprscdr_nodeID , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4084 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4085 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4086 { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4087 { &hf_gprscdr_numberofReceivingUE, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4088 { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation },
4089 { NULL, 0, 0, 0, NULL }
4090 };
4091
4092 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_)4093 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_) {
4094 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4095 SGSNMBMSRecord_set, hf_index, ett_gprscdr_SGSNMBMSRecord);
4096
4097 return offset;
4098 }
4099
4100
4101 static const ber_sequence_t GGSNMBMSRecord_set[] = {
4102 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4103 { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4104 { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4105 { &hf_gprscdr_listofDownstreamNodes, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4106 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4107 { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4108 { &hf_gprscdr_listOfTrafficVolumes_02, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition },
4109 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4110 { &hf_gprscdr_duration , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4111 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4112 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4113 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4114 { &hf_gprscdr_nodeID , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4115 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4116 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4117 { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation },
4118 { NULL, 0, 0, 0, NULL }
4119 };
4120
4121 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_)4122 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_) {
4123 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4124 GGSNMBMSRecord_set, hf_index, ett_gprscdr_GGSNMBMSRecord);
4125
4126 return offset;
4127 }
4128
4129
4130
4131 static int
dissect_gprscdr_T_userLocationInformation_06(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4132 dissect_gprscdr_T_userLocationInformation_06(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4133 #line 195 "./asn1/gprscdr/gprscdr.cnf"
4134
4135 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
4136
4137
4138
4139 return offset;
4140 }
4141
4142
4143
4144 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_)4145 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_) {
4146 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
4147
4148 return offset;
4149 }
4150
4151
4152 static const ber_sequence_t SEQUENCE_OF_ServingNodeType_sequence_of[1] = {
4153 { &hf_gprscdr_servingNodeType_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ServingNodeType },
4154 };
4155
4156 static int
dissect_gprscdr_SEQUENCE_OF_ServingNodeType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4157 dissect_gprscdr_SEQUENCE_OF_ServingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4158 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4159 SEQUENCE_OF_ServingNodeType_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ServingNodeType);
4160
4161 return offset;
4162 }
4163
4164
4165
4166 static int
dissect_gprscdr_T_lastUserLocationInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4167 dissect_gprscdr_T_lastUserLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4168 #line 199 "./asn1/gprscdr/gprscdr.cnf"
4169
4170 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
4171
4172
4173
4174 return offset;
4175 }
4176
4177
4178
4179 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_)4180 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_) {
4181 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
4182
4183 return offset;
4184 }
4185
4186
4187
4188 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_)4189 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_) {
4190 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4191 NULL);
4192
4193 return offset;
4194 }
4195
4196
4197 static const ber_sequence_t MOExceptionDataCounter_sequence[] = {
4198 { &hf_gprscdr_counterValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4199 { &hf_gprscdr_counterTimestamp, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4200 { NULL, 0, 0, 0, NULL }
4201 };
4202
4203 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_)4204 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_) {
4205 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4206 MOExceptionDataCounter_sequence, hf_index, ett_gprscdr_MOExceptionDataCounter);
4207
4208 return offset;
4209 }
4210
4211
4212 static const value_string gprscdr_SecondaryRATType_vals[] = {
4213 { 0, "nR" },
4214 { 0, NULL }
4215 };
4216
4217
4218 static int
dissect_gprscdr_SecondaryRATType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4219 dissect_gprscdr_SecondaryRATType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4220 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4221 NULL);
4222
4223 return offset;
4224 }
4225
4226
4227 static const ber_sequence_t RANSecondaryRATUsageReport_sequence[] = {
4228 { &hf_gprscdr_dataVolumeUplink, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
4229 { &hf_gprscdr_dataVolumeDownlink, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
4230 { &hf_gprscdr_rANStartTime, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4231 { &hf_gprscdr_rANEndTime , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4232 { &hf_gprscdr_secondaryRATType, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SecondaryRATType },
4233 { &hf_gprscdr_chargingID , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4234 { NULL, 0, 0, 0, NULL }
4235 };
4236
4237 static int
dissect_gprscdr_RANSecondaryRATUsageReport(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4238 dissect_gprscdr_RANSecondaryRATUsageReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4239 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4240 RANSecondaryRATUsageReport_sequence, hf_index, ett_gprscdr_RANSecondaryRATUsageReport);
4241
4242 return offset;
4243 }
4244
4245
4246 static const ber_sequence_t SEQUENCE_OF_RANSecondaryRATUsageReport_sequence_of[1] = {
4247 { &hf_gprscdr_listOfRANSecondaryRATUsageReports_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_RANSecondaryRATUsageReport },
4248 };
4249
4250 static int
dissect_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4251 dissect_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4252 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4253 SEQUENCE_OF_RANSecondaryRATUsageReport_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport);
4254
4255 return offset;
4256 }
4257
4258
4259 static const ber_sequence_t SGWRecord_set[] = {
4260 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4261 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4262 { &hf_gprscdr_s_GWAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4263 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4264 { &hf_gprscdr_servingNodeAddress, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4265 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4266 { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
4267 { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4268 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4269 { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
4270 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4271 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4272 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4273 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4274 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4275 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4276 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4277 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4278 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
4279 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
4280 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
4281 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
4282 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4283 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4284 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
4285 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
4286 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
4287 { &hf_gprscdr_userLocationInformation_06, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_06 },
4288 { &hf_gprscdr_sGWChange , BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWChange },
4289 { &hf_gprscdr_servingNodeType, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServingNodeType },
4290 { &hf_gprscdr_p_GWAddressUsed, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4291 { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4292 { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4293 { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4294 { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4295 { &hf_gprscdr_iMSIunauthenticatedFlag, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4296 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
4297 { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4298 { &hf_gprscdr_lowPriorityIndicator, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4299 { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4300 { &hf_gprscdr_s_GWiPv6Address, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4301 { &hf_gprscdr_servingNodeiPv6Address, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4302 { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4303 { &hf_gprscdr_retransmission, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4304 { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4305 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
4306 { &hf_gprscdr_presenceReportingAreaInfo, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaInfo },
4307 { &hf_gprscdr_lastUserLocationInformation, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_lastUserLocationInformation },
4308 { &hf_gprscdr_lastMSTimeZone, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
4309 { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics },
4310 { &hf_gprscdr_cPCIoTEPSOptimisationIndicator, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CPCIoTEPSOptimisationIndicator },
4311 { &hf_gprscdr_uNIPDUCPOnlyFlag, BER_CLASS_CON, 60, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UNIPDUCPOnlyFlag },
4312 { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 61, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl },
4313 { &hf_gprscdr_pDPPDNTypeExtension, BER_CLASS_CON, 62, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPPDNTypeExtension },
4314 { &hf_gprscdr_mOExceptionDataCounter, BER_CLASS_CON, 63, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MOExceptionDataCounter },
4315 { &hf_gprscdr_listOfRANSecondaryRATUsageReports, BER_CLASS_CON, 64, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport },
4316 { &hf_gprscdr_pSCellInformation, BER_CLASS_CON, 65, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSCellInformation },
4317 { NULL, 0, 0, 0, NULL }
4318 };
4319
4320 static int
dissect_gprscdr_SGWRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4321 dissect_gprscdr_SGWRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4322 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4323 SGWRecord_set, hf_index, ett_gprscdr_SGWRecord);
4324
4325 return offset;
4326 }
4327
4328
4329
4330 static int
dissect_gprscdr_T_userLocationInformation_07(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4331 dissect_gprscdr_T_userLocationInformation_07(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4332 #line 203 "./asn1/gprscdr/gprscdr.cnf"
4333
4334 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
4335
4336
4337
4338 return offset;
4339 }
4340
4341
4342 static int * const ServiceConditionChange_bits[] = {
4343 &hf_gprscdr_ServiceConditionChange_qoSChange,
4344 &hf_gprscdr_ServiceConditionChange_sGSNChange,
4345 &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange,
4346 &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch,
4347 &hf_gprscdr_ServiceConditionChange_pDPContextRelease,
4348 &hf_gprscdr_ServiceConditionChange_rATChange,
4349 &hf_gprscdr_ServiceConditionChange_serviceIdledOut,
4350 &hf_gprscdr_ServiceConditionChange_reserved,
4351 &hf_gprscdr_ServiceConditionChange_configurationChange,
4352 &hf_gprscdr_ServiceConditionChange_serviceStop,
4353 &hf_gprscdr_ServiceConditionChange_dCCATimeThresholdReached,
4354 &hf_gprscdr_ServiceConditionChange_dCCAVolumeThresholdReached,
4355 &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitThresholdReached,
4356 &hf_gprscdr_ServiceConditionChange_dCCATimeExhausted,
4357 &hf_gprscdr_ServiceConditionChange_dCCAVolumeExhausted,
4358 &hf_gprscdr_ServiceConditionChange_dCCAValidityTimeout,
4359 &hf_gprscdr_ServiceConditionChange_reserved1,
4360 &hf_gprscdr_ServiceConditionChange_dCCAReauthorisationRequest,
4361 &hf_gprscdr_ServiceConditionChange_dCCAContinueOngoingSession,
4362 &hf_gprscdr_ServiceConditionChange_dCCARetryAndTerminateOngoingSession,
4363 &hf_gprscdr_ServiceConditionChange_dCCATerminateOngoingSession,
4364 &hf_gprscdr_ServiceConditionChange_cGI_SAIChange,
4365 &hf_gprscdr_ServiceConditionChange_rAIChange,
4366 &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitExhausted,
4367 &hf_gprscdr_ServiceConditionChange_recordClosure,
4368 &hf_gprscdr_ServiceConditionChange_timeLimit,
4369 &hf_gprscdr_ServiceConditionChange_volumeLimit,
4370 &hf_gprscdr_ServiceConditionChange_serviceSpecificUnitLimit,
4371 &hf_gprscdr_ServiceConditionChange_envelopeClosure,
4372 &hf_gprscdr_ServiceConditionChange_eCGIChange,
4373 &hf_gprscdr_ServiceConditionChange_tAIChange,
4374 &hf_gprscdr_ServiceConditionChange_userLocationChange,
4375 &hf_gprscdr_ServiceConditionChange_userCSGInformationChange,
4376 &hf_gprscdr_ServiceConditionChange_presenceInPRAChange,
4377 &hf_gprscdr_ServiceConditionChange_accessChangeOfSDF,
4378 &hf_gprscdr_ServiceConditionChange_indirectServiceConditionChange,
4379 &hf_gprscdr_ServiceConditionChange_servingPLMNRateControlChange,
4380 &hf_gprscdr_ServiceConditionChange_aPNRateControlChange,
4381 NULL
4382 };
4383
4384 static int
dissect_gprscdr_ServiceConditionChange(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4385 dissect_gprscdr_ServiceConditionChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4386 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4387 ServiceConditionChange_bits, 38, hf_index, ett_gprscdr_ServiceConditionChange,
4388 NULL);
4389
4390 return offset;
4391 }
4392
4393
4394
4395 static int
dissect_gprscdr_T_userLocationInformation_09(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4396 dissect_gprscdr_T_userLocationInformation_09(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4397 #line 215 "./asn1/gprscdr/gprscdr.cnf"
4398
4399 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
4400
4401
4402
4403 return offset;
4404 }
4405
4406
4407 static const ber_sequence_t SEQUENCE_OF_ServiceSpecificInfo_sequence_of[1] = {
4408 { &hf_gprscdr_serviceSpecificInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ServiceSpecificInfo },
4409 };
4410
4411 static int
dissect_gprscdr_SEQUENCE_OF_ServiceSpecificInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4412 dissect_gprscdr_SEQUENCE_OF_ServiceSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4413 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4414 SEQUENCE_OF_ServiceSpecificInfo_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo);
4415
4416 return offset;
4417 }
4418
4419
4420
4421 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_)4422 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_) {
4423 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
4424 actx, tree, tvb, offset, hf_index,
4425 NULL);
4426
4427 return offset;
4428 }
4429
4430
4431
4432 static int
dissect_gprscdr_T_userLocationInformation_11(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4433 dissect_gprscdr_T_userLocationInformation_11(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4434 #line 223 "./asn1/gprscdr/gprscdr.cnf"
4435
4436 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
4437
4438
4439
4440 return offset;
4441 }
4442
4443
4444 static const ber_sequence_t RelatedChangeOfServiceCondition_sequence[] = {
4445 { &hf_gprscdr_userLocationInformation_12, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_11 },
4446 { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4447 { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus },
4448 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
4449 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
4450 { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo },
4451 { &hf_gprscdr_relatedServiceConditionChange, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChange },
4452 { NULL, 0, 0, 0, NULL }
4453 };
4454
4455 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_)4456 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_) {
4457 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4458 RelatedChangeOfServiceCondition_sequence, hf_index, ett_gprscdr_RelatedChangeOfServiceCondition);
4459
4460 return offset;
4461 }
4462
4463
4464
4465 static int
dissect_gprscdr_TrafficSteeringPolicyIDDownlink(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4466 dissect_gprscdr_TrafficSteeringPolicyIDDownlink(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4467 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4468 NULL);
4469
4470 return offset;
4471 }
4472
4473
4474
4475 static int
dissect_gprscdr_TrafficSteeringPolicyIDUplink(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4476 dissect_gprscdr_TrafficSteeringPolicyIDUplink(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4477 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4478 NULL);
4479
4480 return offset;
4481 }
4482
4483
4484 static const ber_sequence_t TWANUserLocationInfo_sequence[] = {
4485 { &hf_gprscdr_sSID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4486 { &hf_gprscdr_bSSID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4487 { &hf_gprscdr_civicAddressInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CivicAddressInformation },
4488 { &hf_gprscdr_wLANOperatorId, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_WLANOperatorId },
4489 { &hf_gprscdr_logicalAccessID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4490 { NULL, 0, 0, 0, NULL }
4491 };
4492
4493 static int
dissect_gprscdr_TWANUserLocationInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4494 dissect_gprscdr_TWANUserLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4495 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4496 TWANUserLocationInfo_sequence, hf_index, ett_gprscdr_TWANUserLocationInfo);
4497
4498 return offset;
4499 }
4500
4501
4502 static const ber_sequence_t SEQUENCE_OF_InvolvedParty_sequence_of[1] = {
4503 { &hf_gprscdr_list_Of_Called_Asserted_Identity_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_InvolvedParty },
4504 };
4505
4506 static int
dissect_gprscdr_SEQUENCE_OF_InvolvedParty(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4507 dissect_gprscdr_SEQUENCE_OF_InvolvedParty(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4508 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4509 SEQUENCE_OF_InvolvedParty_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_InvolvedParty);
4510
4511 return offset;
4512 }
4513
4514
4515 static const ber_sequence_t CalleePartyInformation_sequence[] = {
4516 { &hf_gprscdr_called_Party_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_InvolvedParty },
4517 { &hf_gprscdr_requested_Party_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_InvolvedParty },
4518 { &hf_gprscdr_list_Of_Called_Asserted_Identity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_InvolvedParty },
4519 { NULL, 0, 0, 0, NULL }
4520 };
4521
4522 static int
dissect_gprscdr_CalleePartyInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4523 dissect_gprscdr_CalleePartyInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4524 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4525 CalleePartyInformation_sequence, hf_index, ett_gprscdr_CalleePartyInformation);
4526
4527 return offset;
4528 }
4529
4530
4531 static const ber_sequence_t VoLTEInformation_sequence[] = {
4532 { &hf_gprscdr_callerInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_InvolvedParty },
4533 { &hf_gprscdr_calleeInformation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CalleePartyInformation },
4534 { NULL, 0, 0, 0, NULL }
4535 };
4536
4537 static int
dissect_gprscdr_VoLTEInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4538 dissect_gprscdr_VoLTEInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4539 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4540 VoLTEInformation_sequence, hf_index, ett_gprscdr_VoLTEInformation);
4541
4542 return offset;
4543 }
4544
4545
4546 static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
4547 { &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
4548 { &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName },
4549 { &hf_gprscdr_resultCode , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ResultCode },
4550 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4551 { &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4552 { &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4553 { &hf_gprscdr_timeUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4554 { &hf_gprscdr_serviceConditionChange_01, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChange },
4555 { &hf_gprscdr_qoSInformationNeg_01, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
4556 { &hf_gprscdr_servingNodeAddress_01, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4557 { &hf_gprscdr_datavolumeFBCUplink, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
4558 { &hf_gprscdr_datavolumeFBCDownlink, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
4559 { &hf_gprscdr_timeOfReport, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4560 { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
4561 { &hf_gprscdr_serviceIdentifier, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceIdentifier },
4562 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
4563 { &hf_gprscdr_aFRecordInformation, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_AFRecordInformation },
4564 { &hf_gprscdr_userLocationInformation_10, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_09 },
4565 { &hf_gprscdr_eventBasedChargingInformation, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EventBasedChargingInformation },
4566 { &hf_gprscdr_timeQuotaMechanism, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeQuotaMechanism },
4567 { &hf_gprscdr_serviceSpecificInfo, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServiceSpecificInfo },
4568 { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4569 { &hf_gprscdr_sponsorIdentity, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4570 { &hf_gprscdr_applicationServiceProviderIdentity, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4571 { &hf_gprscdr_aDCRuleBaseName, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ADCRuleBaseName },
4572 { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus },
4573 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
4574 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
4575 { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo },
4576 { &hf_gprscdr_relatedChangeOfServiceCondition, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RelatedChangeOfServiceCondition },
4577 { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl },
4578 { &hf_gprscdr_aPNRateControl, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControl },
4579 { &hf_gprscdr_threeGPPPSDataOffStatus, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ThreeGPPPSDataOffStatus },
4580 { &hf_gprscdr_trafficSteeringPolicyIDDownlink, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TrafficSteeringPolicyIDDownlink },
4581 { &hf_gprscdr_trafficSteeringPolicyIDUplink, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TrafficSteeringPolicyIDUplink },
4582 { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo },
4583 { &hf_gprscdr_listOfPresenceReportingAreaInformation, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo },
4584 { &hf_gprscdr_voLTEInformation, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_VoLTEInformation },
4585 { NULL, 0, 0, 0, NULL }
4586 };
4587
4588 static int
dissect_gprscdr_ChangeOfServiceCondition(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4589 dissect_gprscdr_ChangeOfServiceCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4590 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4591 ChangeOfServiceCondition_sequence, hf_index, ett_gprscdr_ChangeOfServiceCondition);
4592
4593 return offset;
4594 }
4595
4596
4597 static const ber_sequence_t SEQUENCE_OF_ChangeOfServiceCondition_sequence_of[1] = {
4598 { &hf_gprscdr_listOfServiceData_item_02, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfServiceCondition },
4599 };
4600
4601 static int
dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4602 dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4603 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4604 SEQUENCE_OF_ChangeOfServiceCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition);
4605
4606 return offset;
4607 }
4608
4609
4610
4611 static int
dissect_gprscdr_T_lastUserLocationInformation_01(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4612 dissect_gprscdr_T_lastUserLocationInformation_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4613 #line 207 "./asn1/gprscdr/gprscdr.cnf"
4614
4615 offset = dissect_gprscdr_uli(tvb, actx, tree, 2);
4616
4617
4618
4619 return offset;
4620 }
4621
4622
4623 static const value_string gprscdr_NBIFOMMode_vals[] = {
4624 { 0, "uEINITIATED" },
4625 { 1, "nETWORKINITIATED" },
4626 { 0, NULL }
4627 };
4628
4629
4630 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_)4631 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_) {
4632 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4633 NULL);
4634
4635 return offset;
4636 }
4637
4638
4639 static const value_string gprscdr_NBIFOMSupport_vals[] = {
4640 { 0, "nBIFOMNotSupported" },
4641 { 1, "nBIFOMSupported" },
4642 { 0, NULL }
4643 };
4644
4645
4646 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_)4647 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_) {
4648 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4649 NULL);
4650
4651 return offset;
4652 }
4653
4654
4655 static const value_string gprscdr_SGiPtPTunnellingMethod_vals[] = {
4656 { 0, "uDPIPbased" },
4657 { 1, "others" },
4658 { 0, NULL }
4659 };
4660
4661
4662 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_)4663 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_) {
4664 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4665 NULL);
4666
4667 return offset;
4668 }
4669
4670
4671 static const value_string gprscdr_ChargingPerIPCANSessionIndicator_vals[] = {
4672 { 0, "inactive" },
4673 { 1, "active" },
4674 { 0, NULL }
4675 };
4676
4677
4678 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_)4679 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_) {
4680 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4681 NULL);
4682
4683 return offset;
4684 }
4685
4686
4687 static const ber_sequence_t PGWRecord_set[] = {
4688 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4689 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4690 { &hf_gprscdr_p_GWAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4691 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4692 { &hf_gprscdr_servingNodeAddress, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4693 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4694 { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
4695 { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4696 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4697 { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
4698 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4699 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4700 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4701 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4702 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4703 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4704 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4705 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4706 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
4707 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
4708 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
4709 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
4710 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4711 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4712 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
4713 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
4714 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
4715 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
4716 { &hf_gprscdr_userLocationInformation_07, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_userLocationInformation_07 },
4717 { &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4718 { &hf_gprscdr_listOfServiceData_02, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition },
4719 { &hf_gprscdr_servingNodeType, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServingNodeType },
4720 { &hf_gprscdr_servedMNNAI , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionID },
4721 { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4722 { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4723 { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4724 { &hf_gprscdr_served3gpp2MEID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4725 { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4726 { &hf_gprscdr_iMSIunauthenticatedFlag, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4727 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
4728 { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4729 { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4730 { &hf_gprscdr_lowPriorityIndicator, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4731 { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4732 { &hf_gprscdr_servingNodeiPv6Address, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4733 { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4734 { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo },
4735 { &hf_gprscdr_retransmission, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4736 { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4737 { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity },
4738 { &hf_gprscdr_ePCQoSInformation, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
4739 { &hf_gprscdr_presenceReportingAreaInfo, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaInfo },
4740 { &hf_gprscdr_lastUserLocationInformation_01, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_lastUserLocationInformation_01 },
4741 { &hf_gprscdr_lastMSTimeZone, BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
4742 { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics },
4743 { &hf_gprscdr_nBIFOMMode , BER_CLASS_CON, 60, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NBIFOMMode },
4744 { &hf_gprscdr_nBIFOMSupport, BER_CLASS_CON, 61, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NBIFOMSupport },
4745 { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 62, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo },
4746 { &hf_gprscdr_sGiPtPTunnellingMethod, BER_CLASS_CON, 64, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGiPtPTunnellingMethod },
4747 { &hf_gprscdr_uNIPDUCPOnlyFlag, BER_CLASS_CON, 65, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UNIPDUCPOnlyFlag },
4748 { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 66, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl },
4749 { &hf_gprscdr_aPNRateControl, BER_CLASS_CON, 67, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControl },
4750 { &hf_gprscdr_pDPPDNTypeExtension, BER_CLASS_CON, 68, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPPDNTypeExtension },
4751 { &hf_gprscdr_mOExceptionDataCounter, BER_CLASS_CON, 69, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MOExceptionDataCounter },
4752 { &hf_gprscdr_chargingPerIPCANSessionIndicator, BER_CLASS_CON, 70, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingPerIPCANSessionIndicator },
4753 { &hf_gprscdr_threeGPPPSDataOffStatus, BER_CLASS_CON, 71, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ThreeGPPPSDataOffStatus },
4754 { &hf_gprscdr_sCSASAddress, BER_CLASS_CON, 72, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SCSASAddress },
4755 { &hf_gprscdr_listOfRANSecondaryRATUsageReports, BER_CLASS_CON, 73, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport },
4756 { NULL, 0, 0, 0, NULL }
4757 };
4758
4759 static int
dissect_gprscdr_PGWRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4760 dissect_gprscdr_PGWRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4761 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4762 PGWRecord_set, hf_index, ett_gprscdr_PGWRecord);
4763
4764 return offset;
4765 }
4766
4767
4768
4769 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_)4770 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_) {
4771 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4772 NULL);
4773
4774 return offset;
4775 }
4776
4777
4778 static const ber_sequence_t GWMBMSRecord_set[] = {
4779 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4780 { &hf_gprscdr_mbmsGWAddress, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4781 { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4782 { &hf_gprscdr_listofDownstreamNodes, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4783 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4784 { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
4785 { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4786 { &hf_gprscdr_listOfTrafficVolumes_02, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition },
4787 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4788 { &hf_gprscdr_duration , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4789 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4790 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4791 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4792 { &hf_gprscdr_nodeID , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4793 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4794 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4795 { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation },
4796 { &hf_gprscdr_commonTeid , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CTEID },
4797 { &hf_gprscdr_iPMulticastSourceAddress, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4798 { NULL, 0, 0, 0, NULL }
4799 };
4800
4801 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_)4802 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_) {
4803 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4804 GWMBMSRecord_set, hf_index, ett_gprscdr_GWMBMSRecord);
4805
4806 return offset;
4807 }
4808
4809
4810
4811 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_)4812 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_) {
4813 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4814 NULL);
4815
4816 return offset;
4817 }
4818
4819
4820 static const ber_sequence_t AccessLineIdentifier_sequence[] = {
4821 { &hf_gprscdr_physicalAccessID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UTF8String },
4822 { &hf_gprscdr_logicalAccessID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4823 { NULL, 0, 0, 0, NULL }
4824 };
4825
4826 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_)4827 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_) {
4828 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4829 AccessLineIdentifier_sequence, hf_index, ett_gprscdr_AccessLineIdentifier);
4830
4831 return offset;
4832 }
4833
4834
4835 static const ber_sequence_t FixedUserLocationInformation_sequence[] = {
4836 { &hf_gprscdr_sSID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4837 { &hf_gprscdr_bSSID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4838 { &hf_gprscdr_accessLineIdentifier, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessLineIdentifier },
4839 { NULL, 0, 0, 0, NULL }
4840 };
4841
4842 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_)4843 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_) {
4844 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4845 FixedUserLocationInformation_sequence, hf_index, ett_gprscdr_FixedUserLocationInformation);
4846
4847 return offset;
4848 }
4849
4850
4851 static const ber_sequence_t TDFRecord_set[] = {
4852 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4853 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4854 { &hf_gprscdr_p_GWAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4855 { &hf_gprscdr_servingNodeAddress, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4856 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4857 { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
4858 { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4859 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4860 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4861 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4862 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4863 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4864 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4865 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4866 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4867 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4868 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
4869 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
4870 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
4871 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
4872 { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4873 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
4874 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
4875 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
4876 { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
4877 { &hf_gprscdr_userLocationInformation_08, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4878 { &hf_gprscdr_listOfServiceData_02, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition },
4879 { &hf_gprscdr_servingNodeType, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServingNodeType },
4880 { &hf_gprscdr_servedMNNAI , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionID },
4881 { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4882 { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4883 { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4884 { &hf_gprscdr_served3gpp2MEID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4885 { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 41, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4886 { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation },
4887 { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
4888 { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4889 { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4890 { &hf_gprscdr_servingNodeiPv6Address, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
4891 { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4892 { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo },
4893 { &hf_gprscdr_retransmission, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4894 { &hf_gprscdr_tDFAddress , BER_CLASS_CON, 53, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4895 { &hf_gprscdr_tDFiPv6AddressUsed, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4896 { &hf_gprscdr_tDFPLMNIdentifier, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4897 { &hf_gprscdr_servedFixedSubsID, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedSubsID },
4898 { &hf_gprscdr_accessLineIdentifier, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessLineIdentifier },
4899 { &hf_gprscdr_fixedUserLocationInformation, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedUserLocationInformation },
4900 { NULL, 0, 0, 0, NULL }
4901 };
4902
4903 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_)4904 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_) {
4905 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4906 TDFRecord_set, hf_index, ett_gprscdr_TDFRecord);
4907
4908 return offset;
4909 }
4910
4911
4912 static const ber_sequence_t IPERecord_set[] = {
4913 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4914 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4915 { &hf_gprscdr_iPEdgeAddress, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4916 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4917 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4918 { &hf_gprscdr_iPCANsessionType, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
4919 { &hf_gprscdr_servedIPCANsessionAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4920 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4921 { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
4922 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4923 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4924 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4925 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4926 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4927 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4928 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4929 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4930 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
4931 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
4932 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
4933 { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
4934 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
4935 { &hf_gprscdr_listOfServiceData_02, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition },
4936 { &hf_gprscdr_servedMNNAI , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionID },
4937 { &hf_gprscdr_iPEdgeOperatorIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4938 { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4939 { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4940 { &hf_gprscdr_servedIPCANsessionAddressExt, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4941 { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4942 { &hf_gprscdr_iPEdgeiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4943 { &hf_gprscdr_retransmission, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4944 { &hf_gprscdr_servedFixedSubsID, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedSubsID },
4945 { &hf_gprscdr_accessLineIdentifier, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessLineIdentifier },
4946 { &hf_gprscdr_fixedUserLocationInformation, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FixedUserLocationInformation },
4947 { NULL, 0, 0, 0, NULL }
4948 };
4949
4950 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_)4951 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_) {
4952 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
4953 IPERecord_set, hf_index, ett_gprscdr_IPERecord);
4954
4955 return offset;
4956 }
4957
4958
4959 static const ber_sequence_t EPDGRecord_set[] = {
4960 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
4961 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4962 { &hf_gprscdr_ePDGAddressUsed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4963 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4964 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
4965 { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
4966 { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4967 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4968 { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
4969 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4970 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
4971 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
4972 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
4973 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
4974 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
4975 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
4976 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
4977 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
4978 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
4979 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
4980 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
4981 { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4982 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
4983 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
4984 { &hf_gprscdr_sGWChange , BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWChange },
4985 { &hf_gprscdr_p_GWAddressUsed, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4986 { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
4987 { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4988 { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4989 { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
4990 { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
4991 { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
4992 { &hf_gprscdr_ePDGiPv6AddressUsed, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4993 { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
4994 { &hf_gprscdr_retransmission, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4995 { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics },
4996 { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo },
4997 { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
4998 { &hf_gprscdr_iMSIunauthenticatedFlag, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
4999 { NULL, 0, 0, 0, NULL }
5000 };
5001
5002 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_)5003 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_) {
5004 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5005 EPDGRecord_set, hf_index, ett_gprscdr_EPDGRecord);
5006
5007 return offset;
5008 }
5009
5010
5011 static const ber_sequence_t TWAGRecord_set[] = {
5012 { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
5013 { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5014 { &hf_gprscdr_tWAGAddressUsed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
5015 { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
5016 { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
5017 { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
5018 { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
5019 { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
5020 { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
5021 { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
5022 { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
5023 { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
5024 { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
5025 { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
5026 { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
5027 { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
5028 { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
5029 { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
5030 { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
5031 { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
5032 { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
5033 { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
5034 { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
5035 { &hf_gprscdr_sGWChange , BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWChange },
5036 { &hf_gprscdr_p_GWAddressUsed, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
5037 { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
5038 { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
5039 { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
5040 { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
5041 { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
5042 { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
5043 { &hf_gprscdr_tWAGiPv6AddressUsed, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
5044 { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
5045 { &hf_gprscdr_retransmission, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
5046 { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics },
5047 { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo },
5048 { &hf_gprscdr_iMSIunauthenticatedFlag, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
5049 { NULL, 0, 0, 0, NULL }
5050 };
5051
5052 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_)5053 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_) {
5054 offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
5055 TWAGRecord_set, hf_index, ett_gprscdr_TWAGRecord);
5056
5057 return offset;
5058 }
5059
5060
5061 const value_string gprscdr_GPRSRecord_vals[] = {
5062 { 20, "sgsnPDPRecord" },
5063 { 21, "ggsnPDPRecord" },
5064 { 22, "sgsnMMRecord" },
5065 { 23, "sgsnSMORecord" },
5066 { 24, "sgsnSMTRecord" },
5067 { 25, "sgsnMTLCSRecord" },
5068 { 26, "sgsnMOLCSRecord" },
5069 { 27, "sgsnNILCSRecord" },
5070 { 70, "egsnPDPRecord" },
5071 { 76, "sgsnMBMSRecord" },
5072 { 77, "ggsnMBMSRecord" },
5073 { 78, "sGWRecord" },
5074 { 79, "pGWRecord" },
5075 { 86, "gwMBMSRecord" },
5076 { 92, "tDFRecord" },
5077 { 95, "iPERecord" },
5078 { 96, "ePDGRecord" },
5079 { 97, "tWAGRecord" },
5080 { 0, NULL }
5081 };
5082
5083 static const ber_choice_t GPRSRecord_choice[] = {
5084 { 20, &hf_gprscdr_sgsnPDPRecord_01, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPDPRecord },
5085 { 21, &hf_gprscdr_ggsnPDPRecord_01, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNPDPRecordV750 },
5086 { 22, &hf_gprscdr_sgsnMMRecord, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMMRecord },
5087 { 23, &hf_gprscdr_sgsnSMORecord_01, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecord },
5088 { 24, &hf_gprscdr_sgsnSMTRecord_01, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecord },
5089 { 25, &hf_gprscdr_sgsnMTLCSRecord, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMTLCSRecord },
5090 { 26, &hf_gprscdr_sgsnMOLCSRecord, BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMOLCSRecord },
5091 { 27, &hf_gprscdr_sgsnNILCSRecord, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNNILCSRecord },
5092 { 70, &hf_gprscdr_egsnPDPRecord_01, BER_CLASS_CON, 70, BER_FLAGS_IMPLTAG, dissect_gprscdr_EGSNPDPRecordV750 },
5093 { 76, &hf_gprscdr_sgsnMBMSRecord, BER_CLASS_CON, 76, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMBMSRecord },
5094 { 77, &hf_gprscdr_ggsnMBMSRecord, BER_CLASS_CON, 77, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNMBMSRecord },
5095 { 78, &hf_gprscdr_sGWRecord , BER_CLASS_CON, 78, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWRecord },
5096 { 79, &hf_gprscdr_pGWRecord , BER_CLASS_CON, 79, BER_FLAGS_IMPLTAG, dissect_gprscdr_PGWRecord },
5097 { 86, &hf_gprscdr_gwMBMSRecord, BER_CLASS_CON, 86, BER_FLAGS_IMPLTAG, dissect_gprscdr_GWMBMSRecord },
5098 { 92, &hf_gprscdr_tDFRecord , BER_CLASS_CON, 92, BER_FLAGS_IMPLTAG, dissect_gprscdr_TDFRecord },
5099 { 95, &hf_gprscdr_iPERecord , BER_CLASS_CON, 95, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPERecord },
5100 { 96, &hf_gprscdr_ePDGRecord , BER_CLASS_CON, 96, BER_FLAGS_IMPLTAG, dissect_gprscdr_EPDGRecord },
5101 { 97, &hf_gprscdr_tWAGRecord , BER_CLASS_CON, 97, BER_FLAGS_IMPLTAG, dissect_gprscdr_TWAGRecord },
5102 { 0, NULL, 0, 0, 0, NULL }
5103 };
5104
5105 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_)5106 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_) {
5107 #line 254 "./asn1/gprscdr/gprscdr.cnf"
5108 proto_item *item;
5109 gint branch_taken, t_offset = offset;
5110 gint32 tag;
5111
5112 offset = dissect_ber_choice(actx, tree, tvb, offset,
5113 GPRSRecord_choice, hf_index, ett_gprscdr_GPRSRecord,
5114 &branch_taken);
5115
5116
5117 if(branch_taken == -1){
5118 get_ber_identifier(tvb, t_offset, NULL, NULL, &tag);
5119 item = proto_tree_add_uint(tree, hf_index, tvb, t_offset, 1, tag);
5120 dissect_ber_identifier(actx->pinfo, tree, tvb, t_offset, NULL, NULL, &tag);
5121 expert_add_info_format(actx->pinfo, item, &ei_gprscdr_choice_not_found,
5122 "Record type(BER choice) not found: %u", tag);
5123 }
5124
5125
5126 return offset;
5127 }
5128
5129 /*--- PDUs ---*/
5130
dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)5131 int dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
5132 int offset = 0;
5133 asn1_ctx_t asn1_ctx;
5134 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
5135 offset = dissect_gprscdr_GPRSCallEventRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU);
5136 return offset;
5137 }
dissect_gprscdr_GPRSRecord_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)5138 int dissect_gprscdr_GPRSRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
5139 int offset = 0;
5140 asn1_ctx_t asn1_ctx;
5141 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
5142 offset = dissect_gprscdr_GPRSRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_gprscdr_gprscdr_GPRSRecord_PDU);
5143 return offset;
5144 }
5145
5146
5147 /*--- End of included file: packet-gprscdr-fn.c ---*/
5148 #line 115 "./asn1/gprscdr/packet-gprscdr-template.c"
5149
5150
5151
5152 /* Register all the bits needed with the filtering engine */
5153 void
proto_register_gprscdr(void)5154 proto_register_gprscdr(void)
5155 {
5156 /* List of fields */
5157 static hf_register_info hf[] = {
5158
5159 /*--- Included file: packet-gprscdr-hfarr.c ---*/
5160 #line 1 "./asn1/gprscdr/packet-gprscdr-hfarr.c"
5161 { &hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU,
5162 { "GPRSCallEventRecord", "gprscdr.GPRSCallEventRecord",
5163 FT_UINT32, BASE_DEC, VALS(gprscdr_GPRSCallEventRecord_vals), 0,
5164 NULL, HFILL }},
5165 { &hf_gprscdr_gprscdr_GPRSRecord_PDU,
5166 { "GPRSRecord", "gprscdr.GPRSRecord",
5167 FT_UINT32, BASE_DEC, VALS(gprscdr_GPRSRecord_vals), 0,
5168 NULL, HFILL }},
5169 { &hf_gprscdr_gsm0408Cause,
5170 { "gsm0408Cause", "gprscdr.gsm0408Cause",
5171 FT_INT32, BASE_DEC, NULL, 0,
5172 "INTEGER", HFILL }},
5173 { &hf_gprscdr_gsm0902MapErrorValue,
5174 { "gsm0902MapErrorValue", "gprscdr.gsm0902MapErrorValue",
5175 FT_INT32, BASE_DEC, NULL, 0,
5176 "INTEGER", HFILL }},
5177 { &hf_gprscdr_itu_tQ767Cause,
5178 { "itu-tQ767Cause", "gprscdr.itu_tQ767Cause",
5179 FT_INT32, BASE_DEC, NULL, 0,
5180 "INTEGER", HFILL }},
5181 { &hf_gprscdr_networkSpecificCause,
5182 { "networkSpecificCause", "gprscdr.networkSpecificCause_element",
5183 FT_NONE, BASE_NONE, NULL, 0,
5184 "ManagementExtension", HFILL }},
5185 { &hf_gprscdr_manufacturerSpecificCause,
5186 { "manufacturerSpecificCause", "gprscdr.manufacturerSpecificCause_element",
5187 FT_NONE, BASE_NONE, NULL, 0,
5188 "ManagementExtension", HFILL }},
5189 { &hf_gprscdr_positionMethodFailureCause,
5190 { "positionMethodFailureCause", "gprscdr.positionMethodFailureCause",
5191 FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
5192 "PositionMethodFailure_Diagnostic", HFILL }},
5193 { &hf_gprscdr_unauthorizedLCSClientCause,
5194 { "unauthorizedLCSClientCause", "gprscdr.unauthorizedLCSClientCause",
5195 FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
5196 "UnauthorizedLCSClient_Diagnostic", HFILL }},
5197 { &hf_gprscdr_diameterResultCodeAndExperimentalResult,
5198 { "diameterResultCodeAndExperimentalResult", "gprscdr.diameterResultCodeAndExperimentalResult",
5199 FT_INT32, BASE_DEC, NULL, 0,
5200 "INTEGER", HFILL }},
5201 { &hf_gprscdr_plmnId,
5202 { "plmnId", "gprscdr.plmnId",
5203 FT_BYTES, BASE_NONE, NULL, 0,
5204 "PLMN_Id", HFILL }},
5205 { &hf_gprscdr_eutraCellId,
5206 { "eutraCellId", "gprscdr.eutraCellId",
5207 FT_STRING, BASE_NONE, NULL, 0,
5208 NULL, HFILL }},
5209 { &hf_gprscdr_nid,
5210 { "nid", "gprscdr.nid",
5211 FT_STRING, BASE_NONE, NULL, 0,
5212 NULL, HFILL }},
5213 { &hf_gprscdr_rANNASCause,
5214 { "rANNASCause", "gprscdr.rANNASCause",
5215 FT_UINT32, BASE_DEC, NULL, 0,
5216 "SEQUENCE_OF_RANNASCause", HFILL }},
5217 { &hf_gprscdr_rANNASCause_item,
5218 { "RANNASCause", "gprscdr.RANNASCause",
5219 FT_BYTES, BASE_NONE, NULL, 0,
5220 NULL, HFILL }},
5221 { &hf_gprscdr_sIP_URI,
5222 { "sIP-URI", "gprscdr.sIP_URI",
5223 FT_STRING, BASE_NONE, NULL, 0,
5224 "GraphicString", HFILL }},
5225 { &hf_gprscdr_tEL_URI,
5226 { "tEL-URI", "gprscdr.tEL_URI",
5227 FT_STRING, BASE_NONE, NULL, 0,
5228 "GraphicString", HFILL }},
5229 { &hf_gprscdr_uRN,
5230 { "uRN", "gprscdr.uRN",
5231 FT_STRING, BASE_NONE, NULL, 0,
5232 "GraphicString", HFILL }},
5233 { &hf_gprscdr_iSDN_E164,
5234 { "iSDN-E164", "gprscdr.iSDN_E164",
5235 FT_STRING, BASE_NONE, NULL, 0,
5236 "GraphicString", HFILL }},
5237 { &hf_gprscdr_externalId,
5238 { "externalId", "gprscdr.externalId",
5239 FT_STRING, BASE_NONE, NULL, 0,
5240 "UTF8String", HFILL }},
5241 { &hf_gprscdr_iPBinaryAddress,
5242 { "iPBinaryAddress", "gprscdr.iPBinaryAddress",
5243 FT_UINT32, BASE_DEC, VALS(gprscdr_IPBinaryAddress_vals), 0,
5244 NULL, HFILL }},
5245 { &hf_gprscdr_iPTextRepresentedAddress,
5246 { "iPTextRepresentedAddress", "gprscdr.iPTextRepresentedAddress",
5247 FT_UINT32, BASE_DEC, VALS(gprscdr_IPTextRepresentedAddress_vals), 0,
5248 NULL, HFILL }},
5249 { &hf_gprscdr_iPBinV4Address,
5250 { "iPBinV4Address", "gprscdr.iPBinV4Address",
5251 FT_IPv4, BASE_NONE, NULL, 0,
5252 NULL, HFILL }},
5253 { &hf_gprscdr_iPBinV6Address_choice,
5254 { "iPBinV6Address", "gprscdr.iPBinV6Address_choice",
5255 FT_UINT32, BASE_DEC, VALS(gprscdr_IPBinV6AddressWithOrWithoutPrefixLength_vals), 0,
5256 "IPBinV6AddressWithOrWithoutPrefixLength", HFILL }},
5257 { &hf_gprscdr_iPBinV6Address,
5258 { "iPBinV6Address", "gprscdr.iPBinV6Address",
5259 FT_IPv6, BASE_NONE, NULL, 0,
5260 NULL, HFILL }},
5261 { &hf_gprscdr_iPBinV6AddressWithPrefix,
5262 { "iPBinV6AddressWithPrefix", "gprscdr.iPBinV6AddressWithPrefix_element",
5263 FT_NONE, BASE_NONE, NULL, 0,
5264 "IPBinV6AddressWithPrefixLength", HFILL }},
5265 { &hf_gprscdr_pDPAddressPrefixLength,
5266 { "pDPAddressPrefixLength", "gprscdr.pDPAddressPrefixLength",
5267 FT_UINT32, BASE_DEC, NULL, 0,
5268 NULL, HFILL }},
5269 { &hf_gprscdr_iPTextV4Address,
5270 { "iPTextV4Address", "gprscdr.iPTextV4Address",
5271 FT_STRING, BASE_NONE, NULL, 0,
5272 "IA5String_SIZE_7_15", HFILL }},
5273 { &hf_gprscdr_iPTextV6Address,
5274 { "iPTextV6Address", "gprscdr.iPTextV6Address",
5275 FT_STRING, BASE_NONE, NULL, 0,
5276 "IA5String_SIZE_15_45", HFILL }},
5277 { &hf_gprscdr_lcsClientExternalID,
5278 { "lcsClientExternalID", "gprscdr.lcsClientExternalID_element",
5279 FT_NONE, BASE_NONE, NULL, 0,
5280 NULL, HFILL }},
5281 { &hf_gprscdr_lcsClientDialedByMS,
5282 { "lcsClientDialedByMS", "gprscdr.lcsClientDialedByMS",
5283 FT_BYTES, BASE_NONE, NULL, 0,
5284 "AddressString", HFILL }},
5285 { &hf_gprscdr_lcsClientInternalID,
5286 { "lcsClientInternalID", "gprscdr.lcsClientInternalID",
5287 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
5288 NULL, HFILL }},
5289 { &hf_gprscdr_locationAreaCode,
5290 { "locationAreaCode", "gprscdr.locationAreaCode",
5291 FT_BYTES, BASE_NONE, NULL, 0,
5292 NULL, HFILL }},
5293 { &hf_gprscdr_cellId,
5294 { "cellId", "gprscdr.cellId",
5295 FT_BYTES, BASE_NONE, NULL, 0,
5296 NULL, HFILL }},
5297 { &hf_gprscdr_mCC_MNC,
5298 { "mCC-MNC", "gprscdr.mCC_MNC",
5299 FT_BYTES, BASE_NONE, NULL, 0,
5300 NULL, HFILL }},
5301 { &hf_gprscdr_ManagementExtensions_item,
5302 { "ManagementExtension", "gprscdr.ManagementExtension_element",
5303 FT_NONE, BASE_NONE, NULL, 0,
5304 NULL, HFILL }},
5305 { &hf_gprscdr_tMGI,
5306 { "tMGI", "gprscdr.tMGI",
5307 FT_BYTES, BASE_NONE, NULL, 0,
5308 NULL, HFILL }},
5309 { &hf_gprscdr_mBMSSessionIdentity,
5310 { "mBMSSessionIdentity", "gprscdr.mBMSSessionIdentity",
5311 FT_BYTES, BASE_NONE, NULL, 0,
5312 NULL, HFILL }},
5313 { &hf_gprscdr_mBMSServiceType,
5314 { "mBMSServiceType", "gprscdr.mBMSServiceType",
5315 FT_UINT32, BASE_DEC, VALS(gprscdr_MBMSServiceType_vals), 0,
5316 NULL, HFILL }},
5317 { &hf_gprscdr_mBMSUserServiceType,
5318 { "mBMSUserServiceType", "gprscdr.mBMSUserServiceType",
5319 FT_UINT32, BASE_DEC, VALS(gprscdr_MBMSUserServiceType_vals), 0,
5320 NULL, HFILL }},
5321 { &hf_gprscdr_mBMS2G3GIndicator,
5322 { "mBMS2G3GIndicator", "gprscdr.mBMS2G3GIndicator",
5323 FT_UINT32, BASE_DEC, VALS(gprscdr_MBMS2G3GIndicator_vals), 0,
5324 NULL, HFILL }},
5325 { &hf_gprscdr_fileRepairSupported,
5326 { "fileRepairSupported", "gprscdr.fileRepairSupported",
5327 FT_BOOLEAN, BASE_NONE, NULL, 0,
5328 "BOOLEAN", HFILL }},
5329 { &hf_gprscdr_rAI,
5330 { "rAI", "gprscdr.rAI",
5331 FT_BYTES, BASE_NONE, NULL, 0,
5332 "RoutingAreaCode", HFILL }},
5333 { &hf_gprscdr_mBMSServiceArea,
5334 { "mBMSServiceArea", "gprscdr.mBMSServiceArea",
5335 FT_BYTES, BASE_NONE, NULL, 0,
5336 NULL, HFILL }},
5337 { &hf_gprscdr_requiredMBMSBearerCaps,
5338 { "requiredMBMSBearerCaps", "gprscdr.requiredMBMSBearerCaps",
5339 FT_BYTES, BASE_NONE, NULL, 0,
5340 "RequiredMBMSBearerCapabilities", HFILL }},
5341 { &hf_gprscdr_mBMSGWAddress,
5342 { "mBMSGWAddress", "gprscdr.mBMSGWAddress",
5343 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5344 "GSNAddress", HFILL }},
5345 { &hf_gprscdr_cNIPMulticastDistribution,
5346 { "cNIPMulticastDistribution", "gprscdr.cNIPMulticastDistribution",
5347 FT_UINT32, BASE_DEC, VALS(gprscdr_CNIPMulticastDistribution_vals), 0,
5348 NULL, HFILL }},
5349 { &hf_gprscdr_mBMSDataTransferStart,
5350 { "mBMSDataTransferStart", "gprscdr.mBMSDataTransferStart",
5351 FT_BYTES, BASE_NONE, NULL, 0,
5352 "MBMSTime", HFILL }},
5353 { &hf_gprscdr_mBMSDataTransferStop,
5354 { "mBMSDataTransferStop", "gprscdr.mBMSDataTransferStop",
5355 FT_BYTES, BASE_NONE, NULL, 0,
5356 "MBMSTime", HFILL }},
5357 { &hf_gprscdr_nrCellId,
5358 { "nrCellId", "gprscdr.nrCellId",
5359 FT_STRING, BASE_NONE, NULL, 0,
5360 NULL, HFILL }},
5361 { &hf_gprscdr_iPAddress,
5362 { "iPAddress", "gprscdr.iPAddress",
5363 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5364 NULL, HFILL }},
5365 { &hf_gprscdr_nRcgi,
5366 { "nRcgi", "gprscdr.nRcgi_element",
5367 FT_NONE, BASE_NONE, NULL, 0,
5368 "Ncgi", HFILL }},
5369 { &hf_gprscdr_ecgi,
5370 { "ecgi", "gprscdr.ecgi_element",
5371 FT_NONE, BASE_NONE, NULL, 0,
5372 NULL, HFILL }},
5373 { &hf_gprscdr_sCSAddress,
5374 { "sCSAddress", "gprscdr.sCSAddress",
5375 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5376 "IPAddress", HFILL }},
5377 { &hf_gprscdr_sCSRealm,
5378 { "sCSRealm", "gprscdr.sCSRealm",
5379 FT_BYTES, BASE_NONE, NULL, 0,
5380 "DiameterIdentity", HFILL }},
5381 { &hf_gprscdr_serviceSpecificData,
5382 { "serviceSpecificData", "gprscdr.serviceSpecificData",
5383 FT_STRING, BASE_NONE, NULL, 0,
5384 "GraphicString", HFILL }},
5385 { &hf_gprscdr_serviceSpecificType,
5386 { "serviceSpecificType", "gprscdr.serviceSpecificType",
5387 FT_INT32, BASE_DEC, NULL, 0,
5388 "INTEGER", HFILL }},
5389 { &hf_gprscdr_subscriptionIDType,
5390 { "subscriptionIDType", "gprscdr.subscriptionIDType",
5391 FT_UINT32, BASE_DEC, VALS(gprscdr_SubscriptionIDType_vals), 0,
5392 NULL, HFILL }},
5393 { &hf_gprscdr_subscriptionIDData,
5394 { "subscriptionIDData", "gprscdr.subscriptionIDData",
5395 FT_STRING, BASE_NONE, NULL, 0,
5396 "UTF8String", HFILL }},
5397 { &hf_gprscdr_identifier,
5398 { "identifier", "gprscdr.identifier",
5399 FT_OID, BASE_NONE, NULL, 0,
5400 NULL, HFILL }},
5401 { &hf_gprscdr_significance,
5402 { "significance", "gprscdr.significance",
5403 FT_BOOLEAN, BASE_NONE, NULL, 0,
5404 "BOOLEAN", HFILL }},
5405 { &hf_gprscdr_information,
5406 { "information", "gprscdr.information_element",
5407 FT_NONE, BASE_NONE, NULL, 0,
5408 NULL, HFILL }},
5409 { &hf_gprscdr_sgsnPDPRecord,
5410 { "sgsnPDPRecord", "gprscdr.sgsnPDPRecord_element",
5411 FT_NONE, BASE_NONE, NULL, 0,
5412 "SGSNPDPRecordV651", HFILL }},
5413 { &hf_gprscdr_ggsnPDPRecord,
5414 { "ggsnPDPRecord", "gprscdr.ggsnPDPRecord_element",
5415 FT_NONE, BASE_NONE, NULL, 0,
5416 NULL, HFILL }},
5417 { &hf_gprscdr_sgsnMMRecord,
5418 { "sgsnMMRecord", "gprscdr.sgsnMMRecord_element",
5419 FT_NONE, BASE_NONE, NULL, 0,
5420 NULL, HFILL }},
5421 { &hf_gprscdr_sgsnSMORecord,
5422 { "sgsnSMORecord", "gprscdr.sgsnSMORecord_element",
5423 FT_NONE, BASE_NONE, NULL, 0,
5424 "SGSNSMORecordV651", HFILL }},
5425 { &hf_gprscdr_sgsnSMTRecord,
5426 { "sgsnSMTRecord", "gprscdr.sgsnSMTRecord_element",
5427 FT_NONE, BASE_NONE, NULL, 0,
5428 "SGSNSMTRecordV651", HFILL }},
5429 { &hf_gprscdr_egsnPDPRecord,
5430 { "egsnPDPRecord", "gprscdr.egsnPDPRecord_element",
5431 FT_NONE, BASE_NONE, NULL, 0,
5432 NULL, HFILL }},
5433 { &hf_gprscdr_recordType,
5434 { "recordType", "gprscdr.recordType",
5435 FT_INT32, BASE_DEC, VALS(gprscdr_CallEventRecordType_vals), 0,
5436 "CallEventRecordType", HFILL }},
5437 { &hf_gprscdr_networkInitiation,
5438 { "networkInitiation", "gprscdr.networkInitiation",
5439 FT_BOOLEAN, BASE_NONE, NULL, 0,
5440 "NetworkInitiatedPDPContext", HFILL }},
5441 { &hf_gprscdr_servedIMSI,
5442 { "servedIMSI", "gprscdr.servedIMSI",
5443 FT_BYTES, BASE_NONE, NULL, 0,
5444 "IMSI", HFILL }},
5445 { &hf_gprscdr_ggsnAddress,
5446 { "ggsnAddress", "gprscdr.ggsnAddress",
5447 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5448 "GSNAddress", HFILL }},
5449 { &hf_gprscdr_chargingID,
5450 { "chargingID", "gprscdr.chargingID",
5451 FT_UINT32, BASE_DEC, NULL, 0,
5452 NULL, HFILL }},
5453 { &hf_gprscdr_sgsnAddress,
5454 { "sgsnAddress", "gprscdr.sgsnAddress",
5455 FT_UINT32, BASE_DEC, NULL, 0,
5456 "SEQUENCE_OF_GSNAddress", HFILL }},
5457 { &hf_gprscdr_sgsnAddress_item,
5458 { "GSNAddress", "gprscdr.GSNAddress",
5459 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5460 NULL, HFILL }},
5461 { &hf_gprscdr_accessPointNameNI,
5462 { "accessPointNameNI", "gprscdr.accessPointNameNI",
5463 FT_STRING, BASE_NONE, NULL, 0,
5464 NULL, HFILL }},
5465 { &hf_gprscdr_pdpType,
5466 { "pdpType", "gprscdr.pdpType",
5467 FT_BYTES, BASE_NONE, NULL, 0,
5468 NULL, HFILL }},
5469 { &hf_gprscdr_servedPDPAddress,
5470 { "servedPDPAddress", "gprscdr.servedPDPAddress",
5471 FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
5472 "PDPAddress", HFILL }},
5473 { &hf_gprscdr_dynamicAddressFlag,
5474 { "dynamicAddressFlag", "gprscdr.dynamicAddressFlag",
5475 FT_BOOLEAN, BASE_NONE, NULL, 0,
5476 NULL, HFILL }},
5477 { &hf_gprscdr_listOfTrafficVolumes,
5478 { "listOfTrafficVolumes", "gprscdr.listOfTrafficVolumes",
5479 FT_UINT32, BASE_DEC, NULL, 0,
5480 "SEQUENCE_OF_ChangeOfCharConditionV651", HFILL }},
5481 { &hf_gprscdr_listOfTrafficVolumes_item,
5482 { "ChangeOfCharConditionV651", "gprscdr.ChangeOfCharConditionV651_element",
5483 FT_NONE, BASE_NONE, NULL, 0,
5484 NULL, HFILL }},
5485 { &hf_gprscdr_recordOpeningTime,
5486 { "recordOpeningTime", "gprscdr.recordOpeningTime",
5487 FT_BYTES, BASE_NONE, NULL, 0,
5488 "TimeStamp", HFILL }},
5489 { &hf_gprscdr_duration,
5490 { "duration", "gprscdr.duration",
5491 FT_INT32, BASE_DEC, NULL, 0,
5492 "CallDuration", HFILL }},
5493 { &hf_gprscdr_causeForRecClosing,
5494 { "causeForRecClosing", "gprscdr.causeForRecClosing",
5495 FT_INT32, BASE_DEC, VALS(gprscdr_CauseForRecClosingV651_vals), 0,
5496 "CauseForRecClosingV651", HFILL }},
5497 { &hf_gprscdr_diagnostics,
5498 { "diagnostics", "gprscdr.diagnostics",
5499 FT_UINT32, BASE_DEC, VALS(gprscdr_Diagnostics_vals), 0,
5500 NULL, HFILL }},
5501 { &hf_gprscdr_recordSequenceNumber,
5502 { "recordSequenceNumber", "gprscdr.recordSequenceNumber",
5503 FT_INT32, BASE_DEC, NULL, 0,
5504 "INTEGER", HFILL }},
5505 { &hf_gprscdr_nodeID,
5506 { "nodeID", "gprscdr.nodeID",
5507 FT_STRING, BASE_NONE, NULL, 0,
5508 NULL, HFILL }},
5509 { &hf_gprscdr_recordExtensions,
5510 { "recordExtensions", "gprscdr.recordExtensions",
5511 FT_UINT32, BASE_DEC, NULL, 0,
5512 "ManagementExtensions", HFILL }},
5513 { &hf_gprscdr_localSequenceNumber,
5514 { "localSequenceNumber", "gprscdr.localSequenceNumber",
5515 FT_UINT32, BASE_DEC, NULL, 0,
5516 NULL, HFILL }},
5517 { &hf_gprscdr_apnSelectionMode,
5518 { "apnSelectionMode", "gprscdr.apnSelectionMode",
5519 FT_UINT32, BASE_DEC, VALS(gprscdr_APNSelectionMode_vals), 0,
5520 NULL, HFILL }},
5521 { &hf_gprscdr_servedMSISDN,
5522 { "servedMSISDN", "gprscdr.servedMSISDN",
5523 FT_BYTES, BASE_NONE, NULL, 0,
5524 "MSISDN", HFILL }},
5525 { &hf_gprscdr_chargingCharacteristics,
5526 { "chargingCharacteristics", "gprscdr.chargingCharacteristics",
5527 FT_BYTES, BASE_NONE, NULL, 0,
5528 NULL, HFILL }},
5529 { &hf_gprscdr_chChSelectionMode,
5530 { "chChSelectionMode", "gprscdr.chChSelectionMode",
5531 FT_UINT32, BASE_DEC, VALS(gprscdr_ChChSelectionMode_vals), 0,
5532 NULL, HFILL }},
5533 { &hf_gprscdr_iMSsignalingContext,
5534 { "iMSsignalingContext", "gprscdr.iMSsignalingContext_element",
5535 FT_NONE, BASE_NONE, NULL, 0,
5536 NULL, HFILL }},
5537 { &hf_gprscdr_externalChargingID,
5538 { "externalChargingID", "gprscdr.externalChargingID",
5539 FT_BYTES, BASE_NONE, NULL, 0,
5540 "OCTET_STRING", HFILL }},
5541 { &hf_gprscdr_sgsnPLMNIdentifier,
5542 { "sgsnPLMNIdentifier", "gprscdr.sgsnPLMNIdentifier",
5543 FT_BYTES, BASE_NONE, NULL, 0,
5544 "PLMN_Id", HFILL }},
5545 { &hf_gprscdr_servedIMEISV,
5546 { "servedIMEISV", "gprscdr.servedIMEISV",
5547 FT_BYTES, BASE_NONE, NULL, 0,
5548 "IMEI", HFILL }},
5549 { &hf_gprscdr_rATType,
5550 { "rATType", "gprscdr.rATType",
5551 FT_UINT32, BASE_DEC, VALS(gprscdr_rat_type_vals), 0,
5552 NULL, HFILL }},
5553 { &hf_gprscdr_mSTimeZone,
5554 { "mSTimeZone", "gprscdr.mSTimeZone",
5555 FT_BYTES, BASE_NONE, NULL, 0,
5556 NULL, HFILL }},
5557 { &hf_gprscdr_userLocationInformation,
5558 { "userLocationInformation", "gprscdr.userLocationInformation",
5559 FT_BYTES, BASE_NONE, NULL, 0,
5560 NULL, HFILL }},
5561 { &hf_gprscdr_cAMELChargingInformation,
5562 { "cAMELChargingInformation", "gprscdr.cAMELChargingInformation",
5563 FT_BYTES, BASE_NONE, NULL, 0,
5564 "OCTET_STRING", HFILL }},
5565 { &hf_gprscdr_recordType_01,
5566 { "recordType", "gprscdr.recordType",
5567 FT_INT32, BASE_DEC, VALS(gprscdr_RecordType_vals), 0,
5568 NULL, HFILL }},
5569 { &hf_gprscdr_causeForRecClosing_01,
5570 { "causeForRecClosing", "gprscdr.causeForRecClosing",
5571 FT_INT32, BASE_DEC, VALS(gprscdr_CauseForRecClosing_vals), 0,
5572 NULL, HFILL }},
5573 { &hf_gprscdr_userLocationInformation_01,
5574 { "userLocationInformation", "gprscdr.userLocationInformation",
5575 FT_BYTES, BASE_NONE, NULL, 0,
5576 "T_userLocationInformation_01", HFILL }},
5577 { &hf_gprscdr_pSFurnishChargingInformation,
5578 { "pSFurnishChargingInformation", "gprscdr.pSFurnishChargingInformation_element",
5579 FT_NONE, BASE_NONE, NULL, 0,
5580 NULL, HFILL }},
5581 { &hf_gprscdr_userLocationInformation_02,
5582 { "userLocationInformation", "gprscdr.userLocationInformation",
5583 FT_BYTES, BASE_NONE, NULL, 0,
5584 "T_userLocationInformation_02", HFILL }},
5585 { &hf_gprscdr_listOfServiceData,
5586 { "listOfServiceData", "gprscdr.listOfServiceData",
5587 FT_UINT32, BASE_DEC, NULL, 0,
5588 "SEQUENCE_OF_ChangeOfServiceConditionV651", HFILL }},
5589 { &hf_gprscdr_listOfServiceData_item,
5590 { "ChangeOfServiceConditionV651", "gprscdr.ChangeOfServiceConditionV651_element",
5591 FT_NONE, BASE_NONE, NULL, 0,
5592 NULL, HFILL }},
5593 { &hf_gprscdr_userLocationInformation_03,
5594 { "userLocationInformation", "gprscdr.userLocationInformation",
5595 FT_BYTES, BASE_NONE, NULL, 0,
5596 "T_userLocationInformation_03", HFILL }},
5597 { &hf_gprscdr_listOfServiceData_01,
5598 { "listOfServiceData", "gprscdr.listOfServiceData",
5599 FT_UINT32, BASE_DEC, NULL, 0,
5600 "SEQUENCE_OF_ChangeOfServiceConditionV750", HFILL }},
5601 { &hf_gprscdr_listOfServiceData_item_01,
5602 { "ChangeOfServiceConditionV750", "gprscdr.ChangeOfServiceConditionV750_element",
5603 FT_NONE, BASE_NONE, NULL, 0,
5604 NULL, HFILL }},
5605 { &hf_gprscdr_servedIMEI,
5606 { "servedIMEI", "gprscdr.servedIMEI",
5607 FT_BYTES, BASE_NONE, NULL, 0,
5608 "IMEI", HFILL }},
5609 { &hf_gprscdr_sgsnAddress_01,
5610 { "sgsnAddress", "gprscdr.sgsnAddress",
5611 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5612 "GSNAddress", HFILL }},
5613 { &hf_gprscdr_msNetworkCapability,
5614 { "msNetworkCapability", "gprscdr.msNetworkCapability",
5615 FT_BYTES, BASE_NONE, NULL, 0,
5616 NULL, HFILL }},
5617 { &hf_gprscdr_routingArea,
5618 { "routingArea", "gprscdr.routingArea",
5619 FT_BYTES, BASE_NONE, NULL, 0,
5620 "RoutingAreaCode", HFILL }},
5621 { &hf_gprscdr_cellIdentifier,
5622 { "cellIdentifier", "gprscdr.cellIdentifier",
5623 FT_BYTES, BASE_NONE, NULL, 0,
5624 "CellId", HFILL }},
5625 { &hf_gprscdr_ggsnAddressUsed,
5626 { "ggsnAddressUsed", "gprscdr.ggsnAddressUsed",
5627 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5628 "GSNAddress", HFILL }},
5629 { &hf_gprscdr_sgsnChange,
5630 { "sgsnChange", "gprscdr.sgsnChange",
5631 FT_BOOLEAN, BASE_NONE, NULL, 0,
5632 NULL, HFILL }},
5633 { &hf_gprscdr_accessPointNameOI,
5634 { "accessPointNameOI", "gprscdr.accessPointNameOI",
5635 FT_STRING, BASE_NONE, NULL, 0,
5636 NULL, HFILL }},
5637 { &hf_gprscdr_cAMELInformationPDP,
5638 { "cAMELInformationPDP", "gprscdr.cAMELInformationPDP_element",
5639 FT_NONE, BASE_NONE, NULL, 0,
5640 NULL, HFILL }},
5641 { &hf_gprscdr_rNCUnsentDownlinkVolume,
5642 { "rNCUnsentDownlinkVolume", "gprscdr.rNCUnsentDownlinkVolume",
5643 FT_INT32, BASE_DEC, NULL, 0,
5644 "DataVolumeGPRS", HFILL }},
5645 { &hf_gprscdr_serviceCentre,
5646 { "serviceCentre", "gprscdr.serviceCentre",
5647 FT_BYTES, BASE_NONE, NULL, 0,
5648 "AddressString", HFILL }},
5649 { &hf_gprscdr_recordingEntity,
5650 { "recordingEntity", "gprscdr.recordingEntity",
5651 FT_BYTES, BASE_NONE, NULL, 0,
5652 NULL, HFILL }},
5653 { &hf_gprscdr_locationArea,
5654 { "locationArea", "gprscdr.locationArea",
5655 FT_BYTES, BASE_NONE, NULL, 0,
5656 "LocationAreaCode", HFILL }},
5657 { &hf_gprscdr_messageReference,
5658 { "messageReference", "gprscdr.messageReference",
5659 FT_BYTES, BASE_NONE, NULL, 0,
5660 NULL, HFILL }},
5661 { &hf_gprscdr_eventTimeStamp,
5662 { "eventTimeStamp", "gprscdr.eventTimeStamp",
5663 FT_BYTES, BASE_NONE, NULL, 0,
5664 "TimeStamp", HFILL }},
5665 { &hf_gprscdr_smsResult,
5666 { "smsResult", "gprscdr.smsResult",
5667 FT_UINT32, BASE_DEC, VALS(gprscdr_Diagnostics_vals), 0,
5668 NULL, HFILL }},
5669 { &hf_gprscdr_destinationNumber,
5670 { "destinationNumber", "gprscdr.destinationNumber",
5671 FT_BYTES, BASE_NONE, NULL, 0,
5672 "SmsTpDestinationNumber", HFILL }},
5673 { &hf_gprscdr_cAMELInformationSMS,
5674 { "cAMELInformationSMS", "gprscdr.cAMELInformationSMS_element",
5675 FT_NONE, BASE_NONE, NULL, 0,
5676 NULL, HFILL }},
5677 { &hf_gprscdr_qosRequested,
5678 { "qosRequested", "gprscdr.qosRequested",
5679 FT_BYTES, BASE_NONE, NULL, 0,
5680 "QoSInformation", HFILL }},
5681 { &hf_gprscdr_qosNegotiated,
5682 { "qosNegotiated", "gprscdr.qosNegotiated",
5683 FT_BYTES, BASE_NONE, NULL, 0,
5684 "QoSInformation", HFILL }},
5685 { &hf_gprscdr_dataVolumeGPRSUplink,
5686 { "dataVolumeGPRSUplink", "gprscdr.dataVolumeGPRSUplink",
5687 FT_INT32, BASE_DEC, NULL, 0,
5688 "DataVolumeGPRS", HFILL }},
5689 { &hf_gprscdr_dataVolumeGPRSDownlink,
5690 { "dataVolumeGPRSDownlink", "gprscdr.dataVolumeGPRSDownlink",
5691 FT_INT32, BASE_DEC, NULL, 0,
5692 "DataVolumeGPRS", HFILL }},
5693 { &hf_gprscdr_changeCondition,
5694 { "changeCondition", "gprscdr.changeCondition",
5695 FT_UINT32, BASE_DEC, VALS(gprscdr_ChangeConditionV651_vals), 0,
5696 "ChangeConditionV651", HFILL }},
5697 { &hf_gprscdr_changeTime,
5698 { "changeTime", "gprscdr.changeTime",
5699 FT_BYTES, BASE_NONE, NULL, 0,
5700 "TimeStamp", HFILL }},
5701 { &hf_gprscdr_failureHandlingContinue,
5702 { "failureHandlingContinue", "gprscdr.failureHandlingContinue",
5703 FT_BOOLEAN, BASE_NONE, NULL, 0,
5704 NULL, HFILL }},
5705 { &hf_gprscdr_userLocationInformation_04,
5706 { "userLocationInformation", "gprscdr.userLocationInformation",
5707 FT_BYTES, BASE_NONE, NULL, 0,
5708 "T_userLocationInformation_04", HFILL }},
5709 { &hf_gprscdr_ratingGroup,
5710 { "ratingGroup", "gprscdr.ratingGroup",
5711 FT_UINT32, BASE_DEC, NULL, 0,
5712 "RatingGroupId", HFILL }},
5713 { &hf_gprscdr_chargingRuleBaseName,
5714 { "chargingRuleBaseName", "gprscdr.chargingRuleBaseName",
5715 FT_STRING, BASE_NONE, NULL, 0,
5716 NULL, HFILL }},
5717 { &hf_gprscdr_resultCode,
5718 { "resultCode", "gprscdr.resultCode",
5719 FT_INT32, BASE_DEC, NULL, 0,
5720 NULL, HFILL }},
5721 { &hf_gprscdr_timeOfFirstUsage,
5722 { "timeOfFirstUsage", "gprscdr.timeOfFirstUsage",
5723 FT_BYTES, BASE_NONE, NULL, 0,
5724 "TimeStamp", HFILL }},
5725 { &hf_gprscdr_timeOfLastUsage,
5726 { "timeOfLastUsage", "gprscdr.timeOfLastUsage",
5727 FT_BYTES, BASE_NONE, NULL, 0,
5728 "TimeStamp", HFILL }},
5729 { &hf_gprscdr_timeUsage,
5730 { "timeUsage", "gprscdr.timeUsage",
5731 FT_INT32, BASE_DEC, NULL, 0,
5732 "CallDuration", HFILL }},
5733 { &hf_gprscdr_serviceConditionChange,
5734 { "serviceConditionChange", "gprscdr.serviceConditionChange",
5735 FT_BYTES, BASE_NONE, NULL, 0,
5736 "ServiceConditionChangeV651", HFILL }},
5737 { &hf_gprscdr_qoSInformationNeg,
5738 { "qoSInformationNeg", "gprscdr.qoSInformationNeg",
5739 FT_BYTES, BASE_NONE, NULL, 0,
5740 "QoSInformation", HFILL }},
5741 { &hf_gprscdr_sgsn_Address,
5742 { "sgsn-Address", "gprscdr.sgsn_Address",
5743 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5744 "GSNAddress", HFILL }},
5745 { &hf_gprscdr_sGSNPLMNIdentifier,
5746 { "sGSNPLMNIdentifier", "gprscdr.sGSNPLMNIdentifier",
5747 FT_BYTES, BASE_NONE, NULL, 0,
5748 "PLMN_Id", HFILL }},
5749 { &hf_gprscdr_datavolumeFBCUplink,
5750 { "datavolumeFBCUplink", "gprscdr.datavolumeFBCUplink",
5751 FT_INT32, BASE_DEC, NULL, 0,
5752 "DataVolumeGPRS", HFILL }},
5753 { &hf_gprscdr_datavolumeFBCDownlink,
5754 { "datavolumeFBCDownlink", "gprscdr.datavolumeFBCDownlink",
5755 FT_INT32, BASE_DEC, NULL, 0,
5756 "DataVolumeGPRS", HFILL }},
5757 { &hf_gprscdr_timeOfReport,
5758 { "timeOfReport", "gprscdr.timeOfReport",
5759 FT_BYTES, BASE_NONE, NULL, 0,
5760 "TimeStamp", HFILL }},
5761 { &hf_gprscdr_serviceIdentifier,
5762 { "serviceIdentifier", "gprscdr.serviceIdentifier",
5763 FT_UINT32, BASE_DEC, NULL, 0,
5764 NULL, HFILL }},
5765 { &hf_gprscdr_serviceConditionChangeV750,
5766 { "serviceConditionChangeV750", "gprscdr.serviceConditionChangeV750",
5767 FT_BYTES, BASE_NONE, NULL, 0,
5768 NULL, HFILL }},
5769 { &hf_gprscdr_aFRecordInformation,
5770 { "aFRecordInformation", "gprscdr.aFRecordInformation",
5771 FT_UINT32, BASE_DEC, NULL, 0,
5772 "SEQUENCE_OF_AFRecordInformation", HFILL }},
5773 { &hf_gprscdr_aFRecordInformation_item,
5774 { "AFRecordInformation", "gprscdr.AFRecordInformation_element",
5775 FT_NONE, BASE_NONE, NULL, 0,
5776 NULL, HFILL }},
5777 { &hf_gprscdr_userLocationInformation_05,
5778 { "userLocationInformation", "gprscdr.userLocationInformation",
5779 FT_BYTES, BASE_NONE, NULL, 0,
5780 "T_userLocationInformation_05", HFILL }},
5781 { &hf_gprscdr_eventBasedChargingInformation,
5782 { "eventBasedChargingInformation", "gprscdr.eventBasedChargingInformation_element",
5783 FT_NONE, BASE_NONE, NULL, 0,
5784 NULL, HFILL }},
5785 { &hf_gprscdr_timeQuotaMechanism,
5786 { "timeQuotaMechanism", "gprscdr.timeQuotaMechanism_element",
5787 FT_NONE, BASE_NONE, NULL, 0,
5788 NULL, HFILL }},
5789 { &hf_gprscdr_sgsnPDPRecord_01,
5790 { "sgsnPDPRecord", "gprscdr.sgsnPDPRecord_element",
5791 FT_NONE, BASE_NONE, NULL, 0,
5792 NULL, HFILL }},
5793 { &hf_gprscdr_ggsnPDPRecord_01,
5794 { "ggsnPDPRecord", "gprscdr.ggsnPDPRecord_element",
5795 FT_NONE, BASE_NONE, NULL, 0,
5796 "GGSNPDPRecordV750", HFILL }},
5797 { &hf_gprscdr_sgsnSMORecord_01,
5798 { "sgsnSMORecord", "gprscdr.sgsnSMORecord_element",
5799 FT_NONE, BASE_NONE, NULL, 0,
5800 NULL, HFILL }},
5801 { &hf_gprscdr_sgsnSMTRecord_01,
5802 { "sgsnSMTRecord", "gprscdr.sgsnSMTRecord_element",
5803 FT_NONE, BASE_NONE, NULL, 0,
5804 NULL, HFILL }},
5805 { &hf_gprscdr_sgsnMTLCSRecord,
5806 { "sgsnMTLCSRecord", "gprscdr.sgsnMTLCSRecord_element",
5807 FT_NONE, BASE_NONE, NULL, 0,
5808 NULL, HFILL }},
5809 { &hf_gprscdr_sgsnMOLCSRecord,
5810 { "sgsnMOLCSRecord", "gprscdr.sgsnMOLCSRecord_element",
5811 FT_NONE, BASE_NONE, NULL, 0,
5812 NULL, HFILL }},
5813 { &hf_gprscdr_sgsnNILCSRecord,
5814 { "sgsnNILCSRecord", "gprscdr.sgsnNILCSRecord_element",
5815 FT_NONE, BASE_NONE, NULL, 0,
5816 NULL, HFILL }},
5817 { &hf_gprscdr_egsnPDPRecord_01,
5818 { "egsnPDPRecord", "gprscdr.egsnPDPRecord_element",
5819 FT_NONE, BASE_NONE, NULL, 0,
5820 "EGSNPDPRecordV750", HFILL }},
5821 { &hf_gprscdr_sgsnMBMSRecord,
5822 { "sgsnMBMSRecord", "gprscdr.sgsnMBMSRecord_element",
5823 FT_NONE, BASE_NONE, NULL, 0,
5824 NULL, HFILL }},
5825 { &hf_gprscdr_ggsnMBMSRecord,
5826 { "ggsnMBMSRecord", "gprscdr.ggsnMBMSRecord_element",
5827 FT_NONE, BASE_NONE, NULL, 0,
5828 NULL, HFILL }},
5829 { &hf_gprscdr_sGWRecord,
5830 { "sGWRecord", "gprscdr.sGWRecord_element",
5831 FT_NONE, BASE_NONE, NULL, 0,
5832 NULL, HFILL }},
5833 { &hf_gprscdr_pGWRecord,
5834 { "pGWRecord", "gprscdr.pGWRecord_element",
5835 FT_NONE, BASE_NONE, NULL, 0,
5836 NULL, HFILL }},
5837 { &hf_gprscdr_gwMBMSRecord,
5838 { "gwMBMSRecord", "gprscdr.gwMBMSRecord_element",
5839 FT_NONE, BASE_NONE, NULL, 0,
5840 NULL, HFILL }},
5841 { &hf_gprscdr_tDFRecord,
5842 { "tDFRecord", "gprscdr.tDFRecord_element",
5843 FT_NONE, BASE_NONE, NULL, 0,
5844 NULL, HFILL }},
5845 { &hf_gprscdr_iPERecord,
5846 { "iPERecord", "gprscdr.iPERecord_element",
5847 FT_NONE, BASE_NONE, NULL, 0,
5848 NULL, HFILL }},
5849 { &hf_gprscdr_ePDGRecord,
5850 { "ePDGRecord", "gprscdr.ePDGRecord_element",
5851 FT_NONE, BASE_NONE, NULL, 0,
5852 NULL, HFILL }},
5853 { &hf_gprscdr_tWAGRecord,
5854 { "tWAGRecord", "gprscdr.tWAGRecord_element",
5855 FT_NONE, BASE_NONE, NULL, 0,
5856 NULL, HFILL }},
5857 { &hf_gprscdr_s_GWAddress,
5858 { "s-GWAddress", "gprscdr.s_GWAddress",
5859 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5860 "GSNAddress", HFILL }},
5861 { &hf_gprscdr_servingNodeAddress,
5862 { "servingNodeAddress", "gprscdr.servingNodeAddress",
5863 FT_UINT32, BASE_DEC, NULL, 0,
5864 "SEQUENCE_OF_GSNAddress", HFILL }},
5865 { &hf_gprscdr_servingNodeAddress_item,
5866 { "GSNAddress", "gprscdr.GSNAddress",
5867 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5868 NULL, HFILL }},
5869 { &hf_gprscdr_pdpPDNType,
5870 { "pdpPDNType", "gprscdr.pdpPDNType",
5871 FT_BYTES, BASE_NONE, NULL, 0,
5872 "PDPType", HFILL }},
5873 { &hf_gprscdr_servedPDPPDNAddress,
5874 { "servedPDPPDNAddress", "gprscdr.servedPDPPDNAddress",
5875 FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
5876 "PDPAddress", HFILL }},
5877 { &hf_gprscdr_listOfTrafficVolumes_01,
5878 { "listOfTrafficVolumes", "gprscdr.listOfTrafficVolumes",
5879 FT_UINT32, BASE_DEC, NULL, 0,
5880 "SEQUENCE_OF_ChangeOfCharCondition", HFILL }},
5881 { &hf_gprscdr_listOfTrafficVolumes_item_01,
5882 { "ChangeOfCharCondition", "gprscdr.ChangeOfCharCondition_element",
5883 FT_NONE, BASE_NONE, NULL, 0,
5884 NULL, HFILL }},
5885 { &hf_gprscdr_servingNodePLMNIdentifier,
5886 { "servingNodePLMNIdentifier", "gprscdr.servingNodePLMNIdentifier",
5887 FT_BYTES, BASE_NONE, NULL, 0,
5888 "PLMN_Id", HFILL }},
5889 { &hf_gprscdr_userLocationInformation_06,
5890 { "userLocationInformation", "gprscdr.userLocationInformation",
5891 FT_BYTES, BASE_NONE, NULL, 0,
5892 "T_userLocationInformation_06", HFILL }},
5893 { &hf_gprscdr_sGWChange,
5894 { "sGWChange", "gprscdr.sGWChange",
5895 FT_BOOLEAN, BASE_NONE, NULL, 0,
5896 NULL, HFILL }},
5897 { &hf_gprscdr_servingNodeType,
5898 { "servingNodeType", "gprscdr.servingNodeType",
5899 FT_UINT32, BASE_DEC, NULL, 0,
5900 "SEQUENCE_OF_ServingNodeType", HFILL }},
5901 { &hf_gprscdr_servingNodeType_item,
5902 { "ServingNodeType", "gprscdr.ServingNodeType",
5903 FT_UINT32, BASE_DEC, VALS(gprscdr_ServingNodeType_vals), 0,
5904 NULL, HFILL }},
5905 { &hf_gprscdr_p_GWAddressUsed,
5906 { "p-GWAddressUsed", "gprscdr.p_GWAddressUsed",
5907 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5908 "GSNAddress", HFILL }},
5909 { &hf_gprscdr_p_GWPLMNIdentifier,
5910 { "p-GWPLMNIdentifier", "gprscdr.p_GWPLMNIdentifier",
5911 FT_BYTES, BASE_NONE, NULL, 0,
5912 "PLMN_Id", HFILL }},
5913 { &hf_gprscdr_startTime,
5914 { "startTime", "gprscdr.startTime",
5915 FT_BYTES, BASE_NONE, NULL, 0,
5916 "TimeStamp", HFILL }},
5917 { &hf_gprscdr_stopTime,
5918 { "stopTime", "gprscdr.stopTime",
5919 FT_BYTES, BASE_NONE, NULL, 0,
5920 "TimeStamp", HFILL }},
5921 { &hf_gprscdr_pDNConnectionChargingID,
5922 { "pDNConnectionChargingID", "gprscdr.pDNConnectionChargingID",
5923 FT_UINT32, BASE_DEC, NULL, 0,
5924 "ChargingID", HFILL }},
5925 { &hf_gprscdr_iMSIunauthenticatedFlag,
5926 { "iMSIunauthenticatedFlag", "gprscdr.iMSIunauthenticatedFlag_element",
5927 FT_NONE, BASE_NONE, NULL, 0,
5928 NULL, HFILL }},
5929 { &hf_gprscdr_userCSGInformation,
5930 { "userCSGInformation", "gprscdr.userCSGInformation_element",
5931 FT_NONE, BASE_NONE, NULL, 0,
5932 NULL, HFILL }},
5933 { &hf_gprscdr_servedPDPPDNAddressExt,
5934 { "servedPDPPDNAddressExt", "gprscdr.servedPDPPDNAddressExt",
5935 FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
5936 "PDPAddress", HFILL }},
5937 { &hf_gprscdr_lowPriorityIndicator,
5938 { "lowPriorityIndicator", "gprscdr.lowPriorityIndicator_element",
5939 FT_NONE, BASE_NONE, NULL, 0,
5940 NULL, HFILL }},
5941 { &hf_gprscdr_dynamicAddressFlagExt,
5942 { "dynamicAddressFlagExt", "gprscdr.dynamicAddressFlagExt",
5943 FT_BOOLEAN, BASE_NONE, NULL, 0,
5944 "DynamicAddressFlag", HFILL }},
5945 { &hf_gprscdr_s_GWiPv6Address,
5946 { "s-GWiPv6Address", "gprscdr.s_GWiPv6Address",
5947 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5948 "GSNAddress", HFILL }},
5949 { &hf_gprscdr_servingNodeiPv6Address,
5950 { "servingNodeiPv6Address", "gprscdr.servingNodeiPv6Address",
5951 FT_UINT32, BASE_DEC, NULL, 0,
5952 "SEQUENCE_OF_GSNAddress", HFILL }},
5953 { &hf_gprscdr_servingNodeiPv6Address_item,
5954 { "GSNAddress", "gprscdr.GSNAddress",
5955 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5956 NULL, HFILL }},
5957 { &hf_gprscdr_p_GWiPv6AddressUsed,
5958 { "p-GWiPv6AddressUsed", "gprscdr.p_GWiPv6AddressUsed",
5959 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
5960 "GSNAddress", HFILL }},
5961 { &hf_gprscdr_retransmission,
5962 { "retransmission", "gprscdr.retransmission_element",
5963 FT_NONE, BASE_NONE, NULL, 0,
5964 NULL, HFILL }},
5965 { &hf_gprscdr_userLocationInfoTime,
5966 { "userLocationInfoTime", "gprscdr.userLocationInfoTime",
5967 FT_BYTES, BASE_NONE, NULL, 0,
5968 "TimeStamp", HFILL }},
5969 { &hf_gprscdr_cNOperatorSelectionEnt,
5970 { "cNOperatorSelectionEnt", "gprscdr.cNOperatorSelectionEnt",
5971 FT_UINT32, BASE_DEC, VALS(gprscdr_CNOperatorSelectionEntity_vals), 0,
5972 "CNOperatorSelectionEntity", HFILL }},
5973 { &hf_gprscdr_presenceReportingAreaInfo,
5974 { "presenceReportingAreaInfo", "gprscdr.presenceReportingAreaInfo_element",
5975 FT_NONE, BASE_NONE, NULL, 0,
5976 NULL, HFILL }},
5977 { &hf_gprscdr_lastUserLocationInformation,
5978 { "lastUserLocationInformation", "gprscdr.lastUserLocationInformation",
5979 FT_BYTES, BASE_NONE, NULL, 0,
5980 NULL, HFILL }},
5981 { &hf_gprscdr_lastMSTimeZone,
5982 { "lastMSTimeZone", "gprscdr.lastMSTimeZone",
5983 FT_BYTES, BASE_NONE, NULL, 0,
5984 "MSTimeZone", HFILL }},
5985 { &hf_gprscdr_enhancedDiagnostics,
5986 { "enhancedDiagnostics", "gprscdr.enhancedDiagnostics_element",
5987 FT_NONE, BASE_NONE, NULL, 0,
5988 NULL, HFILL }},
5989 { &hf_gprscdr_cPCIoTEPSOptimisationIndicator,
5990 { "cPCIoTEPSOptimisationIndicator", "gprscdr.cPCIoTEPSOptimisationIndicator",
5991 FT_BOOLEAN, BASE_NONE, NULL, 0,
5992 NULL, HFILL }},
5993 { &hf_gprscdr_uNIPDUCPOnlyFlag,
5994 { "uNIPDUCPOnlyFlag", "gprscdr.uNIPDUCPOnlyFlag",
5995 FT_BOOLEAN, BASE_NONE, NULL, 0,
5996 NULL, HFILL }},
5997 { &hf_gprscdr_servingPLMNRateControl,
5998 { "servingPLMNRateControl", "gprscdr.servingPLMNRateControl_element",
5999 FT_NONE, BASE_NONE, NULL, 0,
6000 NULL, HFILL }},
6001 { &hf_gprscdr_pDPPDNTypeExtension,
6002 { "pDPPDNTypeExtension", "gprscdr.pDPPDNTypeExtension",
6003 FT_INT32, BASE_DEC, NULL, 0,
6004 NULL, HFILL }},
6005 { &hf_gprscdr_mOExceptionDataCounter,
6006 { "mOExceptionDataCounter", "gprscdr.mOExceptionDataCounter_element",
6007 FT_NONE, BASE_NONE, NULL, 0,
6008 NULL, HFILL }},
6009 { &hf_gprscdr_listOfRANSecondaryRATUsageReports,
6010 { "listOfRANSecondaryRATUsageReports", "gprscdr.listOfRANSecondaryRATUsageReports",
6011 FT_UINT32, BASE_DEC, NULL, 0,
6012 "SEQUENCE_OF_RANSecondaryRATUsageReport", HFILL }},
6013 { &hf_gprscdr_listOfRANSecondaryRATUsageReports_item,
6014 { "RANSecondaryRATUsageReport", "gprscdr.RANSecondaryRATUsageReport_element",
6015 FT_NONE, BASE_NONE, NULL, 0,
6016 NULL, HFILL }},
6017 { &hf_gprscdr_pSCellInformation,
6018 { "pSCellInformation", "gprscdr.pSCellInformation_element",
6019 FT_NONE, BASE_NONE, NULL, 0,
6020 NULL, HFILL }},
6021 { &hf_gprscdr_p_GWAddress,
6022 { "p-GWAddress", "gprscdr.p_GWAddress",
6023 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6024 "GSNAddress", HFILL }},
6025 { &hf_gprscdr_userLocationInformation_07,
6026 { "userLocationInformation", "gprscdr.userLocationInformation",
6027 FT_BYTES, BASE_NONE, NULL, 0,
6028 "T_userLocationInformation_07", HFILL }},
6029 { &hf_gprscdr_listOfServiceData_02,
6030 { "listOfServiceData", "gprscdr.listOfServiceData",
6031 FT_UINT32, BASE_DEC, NULL, 0,
6032 "SEQUENCE_OF_ChangeOfServiceCondition", HFILL }},
6033 { &hf_gprscdr_listOfServiceData_item_02,
6034 { "ChangeOfServiceCondition", "gprscdr.ChangeOfServiceCondition_element",
6035 FT_NONE, BASE_NONE, NULL, 0,
6036 NULL, HFILL }},
6037 { &hf_gprscdr_servedMNNAI,
6038 { "servedMNNAI", "gprscdr.servedMNNAI_element",
6039 FT_NONE, BASE_NONE, NULL, 0,
6040 "SubscriptionID", HFILL }},
6041 { &hf_gprscdr_served3gpp2MEID,
6042 { "served3gpp2MEID", "gprscdr.served3gpp2MEID",
6043 FT_BYTES, BASE_NONE, NULL, 0,
6044 "OCTET_STRING", HFILL }},
6045 { &hf_gprscdr_threeGPP2UserLocationInformation,
6046 { "threeGPP2UserLocationInformation", "gprscdr.threeGPP2UserLocationInformation",
6047 FT_BYTES, BASE_NONE, NULL, 0,
6048 "OCTET_STRING", HFILL }},
6049 { &hf_gprscdr_tWANUserLocationInformation,
6050 { "tWANUserLocationInformation", "gprscdr.tWANUserLocationInformation_element",
6051 FT_NONE, BASE_NONE, NULL, 0,
6052 "TWANUserLocationInfo", HFILL }},
6053 { &hf_gprscdr_ePCQoSInformation,
6054 { "ePCQoSInformation", "gprscdr.ePCQoSInformation_element",
6055 FT_NONE, BASE_NONE, NULL, 0,
6056 NULL, HFILL }},
6057 { &hf_gprscdr_lastUserLocationInformation_01,
6058 { "lastUserLocationInformation", "gprscdr.lastUserLocationInformation",
6059 FT_BYTES, BASE_NONE, NULL, 0,
6060 "T_lastUserLocationInformation_01", HFILL }},
6061 { &hf_gprscdr_nBIFOMMode,
6062 { "nBIFOMMode", "gprscdr.nBIFOMMode",
6063 FT_UINT32, BASE_DEC, VALS(gprscdr_NBIFOMMode_vals), 0,
6064 NULL, HFILL }},
6065 { &hf_gprscdr_nBIFOMSupport,
6066 { "nBIFOMSupport", "gprscdr.nBIFOMSupport",
6067 FT_UINT32, BASE_DEC, VALS(gprscdr_NBIFOMSupport_vals), 0,
6068 NULL, HFILL }},
6069 { &hf_gprscdr_uWANUserLocationInformation,
6070 { "uWANUserLocationInformation", "gprscdr.uWANUserLocationInformation_element",
6071 FT_NONE, BASE_NONE, NULL, 0,
6072 "UWANUserLocationInfo", HFILL }},
6073 { &hf_gprscdr_sGiPtPTunnellingMethod,
6074 { "sGiPtPTunnellingMethod", "gprscdr.sGiPtPTunnellingMethod",
6075 FT_UINT32, BASE_DEC, VALS(gprscdr_SGiPtPTunnellingMethod_vals), 0,
6076 NULL, HFILL }},
6077 { &hf_gprscdr_aPNRateControl,
6078 { "aPNRateControl", "gprscdr.aPNRateControl_element",
6079 FT_NONE, BASE_NONE, NULL, 0,
6080 NULL, HFILL }},
6081 { &hf_gprscdr_chargingPerIPCANSessionIndicator,
6082 { "chargingPerIPCANSessionIndicator", "gprscdr.chargingPerIPCANSessionIndicator",
6083 FT_UINT32, BASE_DEC, VALS(gprscdr_ChargingPerIPCANSessionIndicator_vals), 0,
6084 NULL, HFILL }},
6085 { &hf_gprscdr_threeGPPPSDataOffStatus,
6086 { "threeGPPPSDataOffStatus", "gprscdr.threeGPPPSDataOffStatus",
6087 FT_UINT32, BASE_DEC, VALS(gprscdr_ThreeGPPPSDataOffStatus_vals), 0,
6088 NULL, HFILL }},
6089 { &hf_gprscdr_sCSASAddress,
6090 { "sCSASAddress", "gprscdr.sCSASAddress_element",
6091 FT_NONE, BASE_NONE, NULL, 0,
6092 NULL, HFILL }},
6093 { &hf_gprscdr_userLocationInformation_08,
6094 { "userLocationInformation", "gprscdr.userLocationInformation",
6095 FT_BYTES, BASE_NONE, NULL, 0,
6096 "OCTET_STRING", HFILL }},
6097 { &hf_gprscdr_tDFAddress,
6098 { "tDFAddress", "gprscdr.tDFAddress",
6099 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6100 "GSNAddress", HFILL }},
6101 { &hf_gprscdr_tDFiPv6AddressUsed,
6102 { "tDFiPv6AddressUsed", "gprscdr.tDFiPv6AddressUsed",
6103 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6104 "GSNAddress", HFILL }},
6105 { &hf_gprscdr_tDFPLMNIdentifier,
6106 { "tDFPLMNIdentifier", "gprscdr.tDFPLMNIdentifier",
6107 FT_BYTES, BASE_NONE, NULL, 0,
6108 "PLMN_Id", HFILL }},
6109 { &hf_gprscdr_servedFixedSubsID,
6110 { "servedFixedSubsID", "gprscdr.servedFixedSubsID",
6111 FT_BYTES, BASE_NONE, NULL, 0,
6112 "FixedSubsID", HFILL }},
6113 { &hf_gprscdr_accessLineIdentifier,
6114 { "accessLineIdentifier", "gprscdr.accessLineIdentifier_element",
6115 FT_NONE, BASE_NONE, NULL, 0,
6116 NULL, HFILL }},
6117 { &hf_gprscdr_fixedUserLocationInformation,
6118 { "fixedUserLocationInformation", "gprscdr.fixedUserLocationInformation_element",
6119 FT_NONE, BASE_NONE, NULL, 0,
6120 NULL, HFILL }},
6121 { &hf_gprscdr_iPEdgeAddress,
6122 { "iPEdgeAddress", "gprscdr.iPEdgeAddress",
6123 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6124 "GSNAddress", HFILL }},
6125 { &hf_gprscdr_iPCANsessionType,
6126 { "iPCANsessionType", "gprscdr.iPCANsessionType",
6127 FT_BYTES, BASE_NONE, NULL, 0,
6128 "PDPType", HFILL }},
6129 { &hf_gprscdr_servedIPCANsessionAddress,
6130 { "servedIPCANsessionAddress", "gprscdr.servedIPCANsessionAddress",
6131 FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
6132 "PDPAddress", HFILL }},
6133 { &hf_gprscdr_iPEdgeOperatorIdentifier,
6134 { "iPEdgeOperatorIdentifier", "gprscdr.iPEdgeOperatorIdentifier",
6135 FT_BYTES, BASE_NONE, NULL, 0,
6136 "PLMN_Id", HFILL }},
6137 { &hf_gprscdr_servedIPCANsessionAddressExt,
6138 { "servedIPCANsessionAddressExt", "gprscdr.servedIPCANsessionAddressExt",
6139 FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
6140 "PDPAddress", HFILL }},
6141 { &hf_gprscdr_iPEdgeiPv6AddressUsed,
6142 { "iPEdgeiPv6AddressUsed", "gprscdr.iPEdgeiPv6AddressUsed",
6143 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6144 "GSNAddress", HFILL }},
6145 { &hf_gprscdr_ePDGAddressUsed,
6146 { "ePDGAddressUsed", "gprscdr.ePDGAddressUsed",
6147 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6148 "GSNAddress", HFILL }},
6149 { &hf_gprscdr_ePDGiPv6AddressUsed,
6150 { "ePDGiPv6AddressUsed", "gprscdr.ePDGiPv6AddressUsed",
6151 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6152 "GSNAddress", HFILL }},
6153 { &hf_gprscdr_tWAGAddressUsed,
6154 { "tWAGAddressUsed", "gprscdr.tWAGAddressUsed",
6155 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6156 "GSNAddress", HFILL }},
6157 { &hf_gprscdr_tWAGiPv6AddressUsed,
6158 { "tWAGiPv6AddressUsed", "gprscdr.tWAGiPv6AddressUsed",
6159 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6160 "GSNAddress", HFILL }},
6161 { &hf_gprscdr_changeLocation,
6162 { "changeLocation", "gprscdr.changeLocation",
6163 FT_UINT32, BASE_DEC, NULL, 0,
6164 "SEQUENCE_OF_ChangeLocation", HFILL }},
6165 { &hf_gprscdr_changeLocation_item,
6166 { "ChangeLocation", "gprscdr.ChangeLocation_element",
6167 FT_NONE, BASE_NONE, NULL, 0,
6168 NULL, HFILL }},
6169 { &hf_gprscdr_cAMELInformationMM,
6170 { "cAMELInformationMM", "gprscdr.cAMELInformationMM_element",
6171 FT_NONE, BASE_NONE, NULL, 0,
6172 NULL, HFILL }},
6173 { &hf_gprscdr_cellPLMNId,
6174 { "cellPLMNId", "gprscdr.cellPLMNId",
6175 FT_BYTES, BASE_NONE, NULL, 0,
6176 "PLMN_Id", HFILL }},
6177 { &hf_gprscdr_servingNodeType_01,
6178 { "servingNodeType", "gprscdr.servingNodeType",
6179 FT_UINT32, BASE_DEC, VALS(gprscdr_ServingNodeType_vals), 0,
6180 NULL, HFILL }},
6181 { &hf_gprscdr_servingNodeAddress_01,
6182 { "servingNodeAddress", "gprscdr.servingNodeAddress",
6183 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6184 "GSNAddress", HFILL }},
6185 { &hf_gprscdr_servingNodeiPv6Address_01,
6186 { "servingNodeiPv6Address", "gprscdr.servingNodeiPv6Address",
6187 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6188 "GSNAddress", HFILL }},
6189 { &hf_gprscdr_mMEName,
6190 { "mMEName", "gprscdr.mMEName",
6191 FT_BYTES, BASE_NONE, NULL, 0,
6192 "DiameterIdentity", HFILL }},
6193 { &hf_gprscdr_mMERealm,
6194 { "mMERealm", "gprscdr.mMERealm",
6195 FT_BYTES, BASE_NONE, NULL, 0,
6196 "DiameterIdentity", HFILL }},
6197 { &hf_gprscdr_originatingAddress,
6198 { "originatingAddress", "gprscdr.originatingAddress",
6199 FT_BYTES, BASE_NONE, NULL, 0,
6200 "AddressString", HFILL }},
6201 { &hf_gprscdr_lcsClientType,
6202 { "lcsClientType", "gprscdr.lcsClientType",
6203 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
6204 NULL, HFILL }},
6205 { &hf_gprscdr_lcsClientIdentity,
6206 { "lcsClientIdentity", "gprscdr.lcsClientIdentity_element",
6207 FT_NONE, BASE_NONE, NULL, 0,
6208 NULL, HFILL }},
6209 { &hf_gprscdr_locationType,
6210 { "locationType", "gprscdr.locationType_element",
6211 FT_NONE, BASE_NONE, NULL, 0,
6212 NULL, HFILL }},
6213 { &hf_gprscdr_lcsQos,
6214 { "lcsQos", "gprscdr.lcsQos",
6215 FT_BYTES, BASE_NONE, NULL, 0,
6216 "LCSQoSInfo", HFILL }},
6217 { &hf_gprscdr_lcsPriority,
6218 { "lcsPriority", "gprscdr.lcsPriority",
6219 FT_BYTES, BASE_NONE, NULL, 0,
6220 "LCS_Priority", HFILL }},
6221 { &hf_gprscdr_mlcNumber,
6222 { "mlcNumber", "gprscdr.mlcNumber",
6223 FT_BYTES, BASE_NONE, NULL, 0,
6224 "ISDN_AddressString", HFILL }},
6225 { &hf_gprscdr_measurementDuration,
6226 { "measurementDuration", "gprscdr.measurementDuration",
6227 FT_INT32, BASE_DEC, NULL, 0,
6228 "CallDuration", HFILL }},
6229 { &hf_gprscdr_notificationToMSUser,
6230 { "notificationToMSUser", "gprscdr.notificationToMSUser",
6231 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
6232 NULL, HFILL }},
6233 { &hf_gprscdr_privacyOverride,
6234 { "privacyOverride", "gprscdr.privacyOverride_element",
6235 FT_NONE, BASE_NONE, NULL, 0,
6236 NULL, HFILL }},
6237 { &hf_gprscdr_location,
6238 { "location", "gprscdr.location_element",
6239 FT_NONE, BASE_NONE, NULL, 0,
6240 "LocationAreaAndCell", HFILL }},
6241 { &hf_gprscdr_locationEstimate,
6242 { "locationEstimate", "gprscdr.locationEstimate",
6243 FT_BYTES, BASE_NONE, NULL, 0,
6244 "Ext_GeographicalInformation", HFILL }},
6245 { &hf_gprscdr_positioningData,
6246 { "positioningData", "gprscdr.positioningData",
6247 FT_BYTES, BASE_NONE, NULL, 0,
6248 NULL, HFILL }},
6249 { &hf_gprscdr_lcsCause,
6250 { "lcsCause", "gprscdr.lcsCause",
6251 FT_BYTES, BASE_NONE, NULL, 0,
6252 NULL, HFILL }},
6253 { &hf_gprscdr_locationMethod,
6254 { "locationMethod", "gprscdr.locationMethod",
6255 FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
6256 NULL, HFILL }},
6257 { &hf_gprscdr_listofRAs,
6258 { "listofRAs", "gprscdr.listofRAs",
6259 FT_UINT32, BASE_DEC, NULL, 0,
6260 "SEQUENCE_OF_RAIdentity", HFILL }},
6261 { &hf_gprscdr_listofRAs_item,
6262 { "RAIdentity", "gprscdr.RAIdentity",
6263 FT_BYTES, BASE_NONE, NULL, 0,
6264 NULL, HFILL }},
6265 { &hf_gprscdr_listOfTrafficVolumes_02,
6266 { "listOfTrafficVolumes", "gprscdr.listOfTrafficVolumes",
6267 FT_UINT32, BASE_DEC, NULL, 0,
6268 "SEQUENCE_OF_ChangeOfMBMSCondition", HFILL }},
6269 { &hf_gprscdr_listOfTrafficVolumes_item_02,
6270 { "ChangeOfMBMSCondition", "gprscdr.ChangeOfMBMSCondition_element",
6271 FT_NONE, BASE_NONE, NULL, 0,
6272 NULL, HFILL }},
6273 { &hf_gprscdr_numberofReceivingUE,
6274 { "numberofReceivingUE", "gprscdr.numberofReceivingUE",
6275 FT_INT32, BASE_DEC, NULL, 0,
6276 "INTEGER", HFILL }},
6277 { &hf_gprscdr_mbmsInformation,
6278 { "mbmsInformation", "gprscdr.mbmsInformation_element",
6279 FT_NONE, BASE_NONE, NULL, 0,
6280 NULL, HFILL }},
6281 { &hf_gprscdr_listofDownstreamNodes,
6282 { "listofDownstreamNodes", "gprscdr.listofDownstreamNodes",
6283 FT_UINT32, BASE_DEC, NULL, 0,
6284 "SEQUENCE_OF_GSNAddress", HFILL }},
6285 { &hf_gprscdr_listofDownstreamNodes_item,
6286 { "GSNAddress", "gprscdr.GSNAddress",
6287 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6288 NULL, HFILL }},
6289 { &hf_gprscdr_mbmsGWAddress,
6290 { "mbmsGWAddress", "gprscdr.mbmsGWAddress",
6291 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6292 "GSNAddress", HFILL }},
6293 { &hf_gprscdr_commonTeid,
6294 { "commonTeid", "gprscdr.commonTeid",
6295 FT_BYTES, BASE_NONE, NULL, 0,
6296 "CTEID", HFILL }},
6297 { &hf_gprscdr_iPMulticastSourceAddress,
6298 { "iPMulticastSourceAddress", "gprscdr.iPMulticastSourceAddress",
6299 FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
6300 "PDPAddress", HFILL }},
6301 { &hf_gprscdr_physicalAccessID,
6302 { "physicalAccessID", "gprscdr.physicalAccessID",
6303 FT_STRING, BASE_NONE, NULL, 0,
6304 "UTF8String", HFILL }},
6305 { &hf_gprscdr_logicalAccessID,
6306 { "logicalAccessID", "gprscdr.logicalAccessID",
6307 FT_BYTES, BASE_NONE, NULL, 0,
6308 "OCTET_STRING", HFILL }},
6309 { &hf_gprscdr_aFChargingIdentifier,
6310 { "aFChargingIdentifier", "gprscdr.aFChargingIdentifier",
6311 FT_BYTES, BASE_NONE, NULL, 0,
6312 NULL, HFILL }},
6313 { &hf_gprscdr_flows,
6314 { "flows", "gprscdr.flows_element",
6315 FT_NONE, BASE_NONE, NULL, 0,
6316 NULL, HFILL }},
6317 { &hf_gprscdr_aPNRateControlUplink,
6318 { "aPNRateControlUplink", "gprscdr.aPNRateControlUplink_element",
6319 FT_NONE, BASE_NONE, NULL, 0,
6320 "APNRateControlParameters", HFILL }},
6321 { &hf_gprscdr_aPNRateControlDownlink,
6322 { "aPNRateControlDownlink", "gprscdr.aPNRateControlDownlink_element",
6323 FT_NONE, BASE_NONE, NULL, 0,
6324 "APNRateControlParameters", HFILL }},
6325 { &hf_gprscdr_additionalExceptionReports,
6326 { "additionalExceptionReports", "gprscdr.additionalExceptionReports",
6327 FT_UINT32, BASE_DEC, VALS(gprscdr_AdditionalExceptionReports_vals), 0,
6328 NULL, HFILL }},
6329 { &hf_gprscdr_rateControlTimeUnit,
6330 { "rateControlTimeUnit", "gprscdr.rateControlTimeUnit",
6331 FT_INT32, BASE_DEC, VALS(gprscdr_RateControlTimeUnit_vals), 0,
6332 NULL, HFILL }},
6333 { &hf_gprscdr_rateControlMaxRate,
6334 { "rateControlMaxRate", "gprscdr.rateControlMaxRate",
6335 FT_INT32, BASE_DEC, NULL, 0,
6336 "INTEGER", HFILL }},
6337 { &hf_gprscdr_rateControlMaxMessageSize,
6338 { "rateControlMaxMessageSize", "gprscdr.rateControlMaxMessageSize",
6339 FT_INT32, BASE_DEC, NULL, 0,
6340 "DataVolumeGPRS", HFILL }},
6341 { &hf_gprscdr_called_Party_Address,
6342 { "called-Party-Address", "gprscdr.called_Party_Address",
6343 FT_UINT32, BASE_DEC, VALS(gprscdr_InvolvedParty_vals), 0,
6344 "InvolvedParty", HFILL }},
6345 { &hf_gprscdr_requested_Party_Address,
6346 { "requested-Party-Address", "gprscdr.requested_Party_Address",
6347 FT_UINT32, BASE_DEC, VALS(gprscdr_InvolvedParty_vals), 0,
6348 "InvolvedParty", HFILL }},
6349 { &hf_gprscdr_list_Of_Called_Asserted_Identity,
6350 { "list-Of-Called-Asserted-Identity", "gprscdr.list_Of_Called_Asserted_Identity",
6351 FT_UINT32, BASE_DEC, NULL, 0,
6352 "SEQUENCE_OF_InvolvedParty", HFILL }},
6353 { &hf_gprscdr_list_Of_Called_Asserted_Identity_item,
6354 { "InvolvedParty", "gprscdr.InvolvedParty",
6355 FT_UINT32, BASE_DEC, VALS(gprscdr_InvolvedParty_vals), 0,
6356 NULL, HFILL }},
6357 { &hf_gprscdr_sCFAddress,
6358 { "sCFAddress", "gprscdr.sCFAddress",
6359 FT_BYTES, BASE_NONE, NULL, 0,
6360 NULL, HFILL }},
6361 { &hf_gprscdr_serviceKey,
6362 { "serviceKey", "gprscdr.serviceKey",
6363 FT_UINT32, BASE_DEC, NULL, 0,
6364 NULL, HFILL }},
6365 { &hf_gprscdr_defaultTransactionHandling,
6366 { "defaultTransactionHandling", "gprscdr.defaultTransactionHandling",
6367 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
6368 "DefaultGPRS_Handling", HFILL }},
6369 { &hf_gprscdr_numberOfDPEncountered,
6370 { "numberOfDPEncountered", "gprscdr.numberOfDPEncountered",
6371 FT_INT32, BASE_DEC, NULL, 0,
6372 NULL, HFILL }},
6373 { &hf_gprscdr_levelOfCAMELService,
6374 { "levelOfCAMELService", "gprscdr.levelOfCAMELService",
6375 FT_BYTES, BASE_NONE, NULL, 0,
6376 NULL, HFILL }},
6377 { &hf_gprscdr_freeFormatData,
6378 { "freeFormatData", "gprscdr.freeFormatData",
6379 FT_BYTES, BASE_NONE, NULL, 0,
6380 NULL, HFILL }},
6381 { &hf_gprscdr_fFDAppendIndicator,
6382 { "fFDAppendIndicator", "gprscdr.fFDAppendIndicator",
6383 FT_BOOLEAN, BASE_NONE, NULL, 0,
6384 NULL, HFILL }},
6385 { &hf_gprscdr_cAMELAccessPointNameNI,
6386 { "cAMELAccessPointNameNI", "gprscdr.cAMELAccessPointNameNI",
6387 FT_STRING, BASE_NONE, NULL, 0,
6388 NULL, HFILL }},
6389 { &hf_gprscdr_cAMELAccessPointNameOI,
6390 { "cAMELAccessPointNameOI", "gprscdr.cAMELAccessPointNameOI",
6391 FT_STRING, BASE_NONE, NULL, 0,
6392 NULL, HFILL }},
6393 { &hf_gprscdr_defaultSMSHandling,
6394 { "defaultSMSHandling", "gprscdr.defaultSMSHandling",
6395 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
6396 "DefaultSMS_Handling", HFILL }},
6397 { &hf_gprscdr_cAMELCallingPartyNumber,
6398 { "cAMELCallingPartyNumber", "gprscdr.cAMELCallingPartyNumber",
6399 FT_BYTES, BASE_NONE, NULL, 0,
6400 "CallingNumber", HFILL }},
6401 { &hf_gprscdr_cAMELDestinationSubscriberNumber,
6402 { "cAMELDestinationSubscriberNumber", "gprscdr.cAMELDestinationSubscriberNumber",
6403 FT_BYTES, BASE_NONE, NULL, 0,
6404 "SmsTpDestinationNumber", HFILL }},
6405 { &hf_gprscdr_cAMELSMSCAddress,
6406 { "cAMELSMSCAddress", "gprscdr.cAMELSMSCAddress",
6407 FT_BYTES, BASE_NONE, NULL, 0,
6408 "AddressString", HFILL }},
6409 { &hf_gprscdr_smsReferenceNumber,
6410 { "smsReferenceNumber", "gprscdr.smsReferenceNumber",
6411 FT_BYTES, BASE_NONE, NULL, 0,
6412 "CallReferenceNumber", HFILL }},
6413 { &hf_gprscdr_changeCondition_01,
6414 { "changeCondition", "gprscdr.changeCondition",
6415 FT_UINT32, BASE_DEC, VALS(gprscdr_ChangeCondition_vals), 0,
6416 NULL, HFILL }},
6417 { &hf_gprscdr_userLocationInformation_09,
6418 { "userLocationInformation", "gprscdr.userLocationInformation",
6419 FT_BYTES, BASE_NONE, NULL, 0,
6420 "T_userLocationInformation_08", HFILL }},
6421 { &hf_gprscdr_presenceReportingAreaStatus,
6422 { "presenceReportingAreaStatus", "gprscdr.presenceReportingAreaStatus",
6423 FT_UINT32, BASE_DEC, VALS(gprscdr_PresenceReportingAreaStatus_vals), 0,
6424 NULL, HFILL }},
6425 { &hf_gprscdr_accessAvailabilityChangeReason,
6426 { "accessAvailabilityChangeReason", "gprscdr.accessAvailabilityChangeReason",
6427 FT_UINT32, BASE_DEC, NULL, 0,
6428 NULL, HFILL }},
6429 { &hf_gprscdr_relatedChangeOfCharCondition,
6430 { "relatedChangeOfCharCondition", "gprscdr.relatedChangeOfCharCondition_element",
6431 FT_NONE, BASE_NONE, NULL, 0,
6432 NULL, HFILL }},
6433 { &hf_gprscdr_listOfPresenceReportingAreaInformation,
6434 { "listOfPresenceReportingAreaInformation", "gprscdr.listOfPresenceReportingAreaInformation",
6435 FT_UINT32, BASE_DEC, NULL, 0,
6436 "SEQUENCE_OF_PresenceReportingAreaInfo", HFILL }},
6437 { &hf_gprscdr_listOfPresenceReportingAreaInformation_item,
6438 { "PresenceReportingAreaInfo", "gprscdr.PresenceReportingAreaInfo_element",
6439 FT_NONE, BASE_NONE, NULL, 0,
6440 NULL, HFILL }},
6441 { &hf_gprscdr_dataVolumeMBMSUplink,
6442 { "dataVolumeMBMSUplink", "gprscdr.dataVolumeMBMSUplink",
6443 FT_INT32, BASE_DEC, NULL, 0,
6444 "DataVolumeMBMS", HFILL }},
6445 { &hf_gprscdr_dataVolumeMBMSDownlink,
6446 { "dataVolumeMBMSDownlink", "gprscdr.dataVolumeMBMSDownlink",
6447 FT_INT32, BASE_DEC, NULL, 0,
6448 "DataVolumeMBMS", HFILL }},
6449 { &hf_gprscdr_serviceConditionChange_01,
6450 { "serviceConditionChange", "gprscdr.serviceConditionChange",
6451 FT_BYTES, BASE_NONE, NULL, 0,
6452 NULL, HFILL }},
6453 { &hf_gprscdr_qoSInformationNeg_01,
6454 { "qoSInformationNeg", "gprscdr.qoSInformationNeg_element",
6455 FT_NONE, BASE_NONE, NULL, 0,
6456 "EPCQoSInformation", HFILL }},
6457 { &hf_gprscdr_userLocationInformation_10,
6458 { "userLocationInformation", "gprscdr.userLocationInformation",
6459 FT_BYTES, BASE_NONE, NULL, 0,
6460 "T_userLocationInformation_09", HFILL }},
6461 { &hf_gprscdr_serviceSpecificInfo,
6462 { "serviceSpecificInfo", "gprscdr.serviceSpecificInfo",
6463 FT_UINT32, BASE_DEC, NULL, 0,
6464 "SEQUENCE_OF_ServiceSpecificInfo", HFILL }},
6465 { &hf_gprscdr_serviceSpecificInfo_item,
6466 { "ServiceSpecificInfo", "gprscdr.ServiceSpecificInfo_element",
6467 FT_NONE, BASE_NONE, NULL, 0,
6468 NULL, HFILL }},
6469 { &hf_gprscdr_sponsorIdentity,
6470 { "sponsorIdentity", "gprscdr.sponsorIdentity",
6471 FT_BYTES, BASE_NONE, NULL, 0,
6472 "OCTET_STRING", HFILL }},
6473 { &hf_gprscdr_applicationServiceProviderIdentity,
6474 { "applicationServiceProviderIdentity", "gprscdr.applicationServiceProviderIdentity",
6475 FT_BYTES, BASE_NONE, NULL, 0,
6476 "OCTET_STRING", HFILL }},
6477 { &hf_gprscdr_aDCRuleBaseName,
6478 { "aDCRuleBaseName", "gprscdr.aDCRuleBaseName",
6479 FT_STRING, BASE_NONE, NULL, 0,
6480 NULL, HFILL }},
6481 { &hf_gprscdr_relatedChangeOfServiceCondition,
6482 { "relatedChangeOfServiceCondition", "gprscdr.relatedChangeOfServiceCondition_element",
6483 FT_NONE, BASE_NONE, NULL, 0,
6484 NULL, HFILL }},
6485 { &hf_gprscdr_trafficSteeringPolicyIDDownlink,
6486 { "trafficSteeringPolicyIDDownlink", "gprscdr.trafficSteeringPolicyIDDownlink",
6487 FT_BYTES, BASE_NONE, NULL, 0,
6488 NULL, HFILL }},
6489 { &hf_gprscdr_trafficSteeringPolicyIDUplink,
6490 { "trafficSteeringPolicyIDUplink", "gprscdr.trafficSteeringPolicyIDUplink",
6491 FT_BYTES, BASE_NONE, NULL, 0,
6492 NULL, HFILL }},
6493 { &hf_gprscdr_voLTEInformation,
6494 { "voLTEInformation", "gprscdr.voLTEInformation_element",
6495 FT_NONE, BASE_NONE, NULL, 0,
6496 NULL, HFILL }},
6497 { &hf_gprscdr_routingAreaCode,
6498 { "routingAreaCode", "gprscdr.routingAreaCode",
6499 FT_BYTES, BASE_NONE, NULL, 0,
6500 NULL, HFILL }},
6501 { &hf_gprscdr_mCC_MNC_01,
6502 { "mCC-MNC", "gprscdr.mCC_MNC",
6503 FT_BYTES, BASE_NONE, NULL, 0,
6504 "PLMN_Id", HFILL }},
6505 { &hf_gprscdr_qCI,
6506 { "qCI", "gprscdr.qCI",
6507 FT_INT32, BASE_DEC, NULL, 0,
6508 "INTEGER", HFILL }},
6509 { &hf_gprscdr_maxRequestedBandwithUL,
6510 { "maxRequestedBandwithUL", "gprscdr.maxRequestedBandwithUL",
6511 FT_UINT32, BASE_DEC, NULL, 0,
6512 "INTEGER", HFILL }},
6513 { &hf_gprscdr_maxRequestedBandwithDL,
6514 { "maxRequestedBandwithDL", "gprscdr.maxRequestedBandwithDL",
6515 FT_UINT32, BASE_DEC, NULL, 0,
6516 "INTEGER", HFILL }},
6517 { &hf_gprscdr_guaranteedBitrateUL,
6518 { "guaranteedBitrateUL", "gprscdr.guaranteedBitrateUL",
6519 FT_UINT32, BASE_DEC, NULL, 0,
6520 "INTEGER", HFILL }},
6521 { &hf_gprscdr_guaranteedBitrateDL,
6522 { "guaranteedBitrateDL", "gprscdr.guaranteedBitrateDL",
6523 FT_UINT32, BASE_DEC, NULL, 0,
6524 "INTEGER", HFILL }},
6525 { &hf_gprscdr_aRP,
6526 { "aRP", "gprscdr.aRP",
6527 FT_INT32, BASE_DEC, NULL, 0,
6528 NULL, HFILL }},
6529 { &hf_gprscdr_aPNAggregateMaxBitrateUL,
6530 { "aPNAggregateMaxBitrateUL", "gprscdr.aPNAggregateMaxBitrateUL",
6531 FT_UINT32, BASE_DEC, NULL, 0,
6532 "INTEGER", HFILL }},
6533 { &hf_gprscdr_aPNAggregateMaxBitrateDL,
6534 { "aPNAggregateMaxBitrateDL", "gprscdr.aPNAggregateMaxBitrateDL",
6535 FT_UINT32, BASE_DEC, NULL, 0,
6536 "INTEGER", HFILL }},
6537 { &hf_gprscdr_extendedMaxRequestedBWUL,
6538 { "extendedMaxRequestedBWUL", "gprscdr.extendedMaxRequestedBWUL",
6539 FT_UINT32, BASE_DEC, NULL, 0,
6540 "INTEGER", HFILL }},
6541 { &hf_gprscdr_extendedMaxRequestedBWDL,
6542 { "extendedMaxRequestedBWDL", "gprscdr.extendedMaxRequestedBWDL",
6543 FT_UINT32, BASE_DEC, NULL, 0,
6544 "INTEGER", HFILL }},
6545 { &hf_gprscdr_extendedGBRUL,
6546 { "extendedGBRUL", "gprscdr.extendedGBRUL",
6547 FT_UINT32, BASE_DEC, NULL, 0,
6548 "INTEGER", HFILL }},
6549 { &hf_gprscdr_extendedGBRDL,
6550 { "extendedGBRDL", "gprscdr.extendedGBRDL",
6551 FT_UINT32, BASE_DEC, NULL, 0,
6552 "INTEGER", HFILL }},
6553 { &hf_gprscdr_extendedAPNAMBRUL,
6554 { "extendedAPNAMBRUL", "gprscdr.extendedAPNAMBRUL",
6555 FT_UINT32, BASE_DEC, NULL, 0,
6556 "INTEGER", HFILL }},
6557 { &hf_gprscdr_extendedAPNAMBRDL,
6558 { "extendedAPNAMBRDL", "gprscdr.extendedAPNAMBRDL",
6559 FT_UINT32, BASE_DEC, NULL, 0,
6560 "INTEGER", HFILL }},
6561 { &hf_gprscdr_numberOfEvents,
6562 { "numberOfEvents", "gprscdr.numberOfEvents",
6563 FT_INT32, BASE_DEC, NULL, 0,
6564 "INTEGER", HFILL }},
6565 { &hf_gprscdr_eventTimeStamps,
6566 { "eventTimeStamps", "gprscdr.eventTimeStamps",
6567 FT_UINT32, BASE_DEC, NULL, 0,
6568 "SEQUENCE_OF_TimeStamp", HFILL }},
6569 { &hf_gprscdr_eventTimeStamps_item,
6570 { "TimeStamp", "gprscdr.TimeStamp",
6571 FT_BYTES, BASE_NONE, NULL, 0,
6572 NULL, HFILL }},
6573 { &hf_gprscdr_sSID,
6574 { "sSID", "gprscdr.sSID",
6575 FT_BYTES, BASE_NONE, NULL, 0,
6576 "OCTET_STRING", HFILL }},
6577 { &hf_gprscdr_bSSID,
6578 { "bSSID", "gprscdr.bSSID",
6579 FT_BYTES, BASE_NONE, NULL, 0,
6580 "OCTET_STRING", HFILL }},
6581 { &hf_gprscdr_mediaComponentNumber,
6582 { "mediaComponentNumber", "gprscdr.mediaComponentNumber",
6583 FT_INT32, BASE_DEC, NULL, 0,
6584 "INTEGER", HFILL }},
6585 { &hf_gprscdr_flowNumber,
6586 { "flowNumber", "gprscdr.flowNumber",
6587 FT_UINT32, BASE_DEC, NULL, 0,
6588 NULL, HFILL }},
6589 { &hf_gprscdr_flowNumber_item,
6590 { "flowNumber item", "gprscdr.flowNumber_item",
6591 FT_INT32, BASE_DEC, NULL, 0,
6592 "INTEGER", HFILL }},
6593 { &hf_gprscdr_counterValue,
6594 { "counterValue", "gprscdr.counterValue",
6595 FT_INT32, BASE_DEC, NULL, 0,
6596 "INTEGER", HFILL }},
6597 { &hf_gprscdr_counterTimestamp,
6598 { "counterTimestamp", "gprscdr.counterTimestamp",
6599 FT_BYTES, BASE_NONE, NULL, 0,
6600 "TimeStamp", HFILL }},
6601 { &hf_gprscdr_presenceReportingAreaIdentifier,
6602 { "presenceReportingAreaIdentifier", "gprscdr.presenceReportingAreaIdentifier",
6603 FT_BYTES, BASE_NONE, NULL, 0,
6604 "OCTET_STRING", HFILL }},
6605 { &hf_gprscdr_presenceReportingAreaElementsList,
6606 { "presenceReportingAreaElementsList", "gprscdr.presenceReportingAreaElementsList",
6607 FT_BYTES, BASE_NONE, NULL, 0,
6608 NULL, HFILL }},
6609 { &hf_gprscdr_presenceReportingAreaNode,
6610 { "presenceReportingAreaNode", "gprscdr.presenceReportingAreaNode",
6611 FT_BYTES, BASE_NONE, NULL, 0,
6612 NULL, HFILL }},
6613 { &hf_gprscdr_pSFreeFormatData,
6614 { "pSFreeFormatData", "gprscdr.pSFreeFormatData",
6615 FT_BYTES, BASE_NONE, NULL, 0,
6616 "FreeFormatData", HFILL }},
6617 { &hf_gprscdr_pSFFDAppendIndicator,
6618 { "pSFFDAppendIndicator", "gprscdr.pSFFDAppendIndicator",
6619 FT_BOOLEAN, BASE_NONE, NULL, 0,
6620 "FFDAppendIndicator", HFILL }},
6621 { &hf_gprscdr_dataVolumeUplink,
6622 { "dataVolumeUplink", "gprscdr.dataVolumeUplink",
6623 FT_INT32, BASE_DEC, NULL, 0,
6624 "DataVolumeGPRS", HFILL }},
6625 { &hf_gprscdr_dataVolumeDownlink,
6626 { "dataVolumeDownlink", "gprscdr.dataVolumeDownlink",
6627 FT_INT32, BASE_DEC, NULL, 0,
6628 "DataVolumeGPRS", HFILL }},
6629 { &hf_gprscdr_rANStartTime,
6630 { "rANStartTime", "gprscdr.rANStartTime",
6631 FT_BYTES, BASE_NONE, NULL, 0,
6632 "TimeStamp", HFILL }},
6633 { &hf_gprscdr_rANEndTime,
6634 { "rANEndTime", "gprscdr.rANEndTime",
6635 FT_BYTES, BASE_NONE, NULL, 0,
6636 "TimeStamp", HFILL }},
6637 { &hf_gprscdr_secondaryRATType,
6638 { "secondaryRATType", "gprscdr.secondaryRATType",
6639 FT_INT32, BASE_DEC, VALS(gprscdr_SecondaryRATType_vals), 0,
6640 NULL, HFILL }},
6641 { &hf_gprscdr_userLocationInformation_11,
6642 { "userLocationInformation", "gprscdr.userLocationInformation",
6643 FT_BYTES, BASE_NONE, NULL, 0,
6644 "T_userLocationInformation_10", HFILL }},
6645 { &hf_gprscdr_userLocationInformation_12,
6646 { "userLocationInformation", "gprscdr.userLocationInformation",
6647 FT_BYTES, BASE_NONE, NULL, 0,
6648 "T_userLocationInformation_11", HFILL }},
6649 { &hf_gprscdr_relatedServiceConditionChange,
6650 { "relatedServiceConditionChange", "gprscdr.relatedServiceConditionChange",
6651 FT_BYTES, BASE_NONE, NULL, 0,
6652 "ServiceConditionChange", HFILL }},
6653 { &hf_gprscdr_sPLMNDLRateControlValue,
6654 { "sPLMNDLRateControlValue", "gprscdr.sPLMNDLRateControlValue",
6655 FT_INT32, BASE_DEC, NULL, 0,
6656 "INTEGER", HFILL }},
6657 { &hf_gprscdr_sPLMNULRateControlValue,
6658 { "sPLMNULRateControlValue", "gprscdr.sPLMNULRateControlValue",
6659 FT_INT32, BASE_DEC, NULL, 0,
6660 "INTEGER", HFILL }},
6661 { &hf_gprscdr_timeQuotaType,
6662 { "timeQuotaType", "gprscdr.timeQuotaType",
6663 FT_UINT32, BASE_DEC, VALS(gprscdr_TimeQuotaType_vals), 0,
6664 NULL, HFILL }},
6665 { &hf_gprscdr_baseTimeInterval,
6666 { "baseTimeInterval", "gprscdr.baseTimeInterval",
6667 FT_INT32, BASE_DEC, NULL, 0,
6668 "INTEGER", HFILL }},
6669 { &hf_gprscdr_civicAddressInformation,
6670 { "civicAddressInformation", "gprscdr.civicAddressInformation",
6671 FT_BYTES, BASE_NONE, NULL, 0,
6672 NULL, HFILL }},
6673 { &hf_gprscdr_wLANOperatorId,
6674 { "wLANOperatorId", "gprscdr.wLANOperatorId_element",
6675 FT_NONE, BASE_NONE, NULL, 0,
6676 NULL, HFILL }},
6677 { &hf_gprscdr_cSGId,
6678 { "cSGId", "gprscdr.cSGId",
6679 FT_UINT32, BASE_DEC, NULL, 0,
6680 NULL, HFILL }},
6681 { &hf_gprscdr_cSGAccessMode,
6682 { "cSGAccessMode", "gprscdr.cSGAccessMode",
6683 FT_UINT32, BASE_DEC, VALS(gprscdr_CSGAccessMode_vals), 0,
6684 NULL, HFILL }},
6685 { &hf_gprscdr_cSGMembershipIndication,
6686 { "cSGMembershipIndication", "gprscdr.cSGMembershipIndication_element",
6687 FT_NONE, BASE_NONE, NULL, 0,
6688 NULL, HFILL }},
6689 { &hf_gprscdr_uELocalIPAddress,
6690 { "uELocalIPAddress", "gprscdr.uELocalIPAddress",
6691 FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
6692 "IPAddress", HFILL }},
6693 { &hf_gprscdr_uDPSourcePort,
6694 { "uDPSourcePort", "gprscdr.uDPSourcePort",
6695 FT_BYTES, BASE_NONE, NULL, 0,
6696 "OCTET_STRING_SIZE_2", HFILL }},
6697 { &hf_gprscdr_tCPSourcePort,
6698 { "tCPSourcePort", "gprscdr.tCPSourcePort",
6699 FT_BYTES, BASE_NONE, NULL, 0,
6700 "OCTET_STRING_SIZE_2", HFILL }},
6701 { &hf_gprscdr_callerInformation,
6702 { "callerInformation", "gprscdr.callerInformation",
6703 FT_UINT32, BASE_DEC, NULL, 0,
6704 "SEQUENCE_OF_InvolvedParty", HFILL }},
6705 { &hf_gprscdr_callerInformation_item,
6706 { "InvolvedParty", "gprscdr.InvolvedParty",
6707 FT_UINT32, BASE_DEC, VALS(gprscdr_InvolvedParty_vals), 0,
6708 NULL, HFILL }},
6709 { &hf_gprscdr_calleeInformation,
6710 { "calleeInformation", "gprscdr.calleeInformation_element",
6711 FT_NONE, BASE_NONE, NULL, 0,
6712 "CalleePartyInformation", HFILL }},
6713 { &hf_gprscdr_wLANOperatorName,
6714 { "wLANOperatorName", "gprscdr.wLANOperatorName",
6715 FT_BYTES, BASE_NONE, NULL, 0,
6716 "OCTET_STRING", HFILL }},
6717 { &hf_gprscdr_wLANPLMNId,
6718 { "wLANPLMNId", "gprscdr.wLANPLMNId",
6719 FT_BYTES, BASE_NONE, NULL, 0,
6720 "PLMN_Id", HFILL }},
6721 { &hf_gprscdr_LevelOfCAMELService_basic,
6722 { "basic", "gprscdr.LevelOfCAMELService.basic",
6723 FT_BOOLEAN, 8, NULL, 0x80,
6724 NULL, HFILL }},
6725 { &hf_gprscdr_LevelOfCAMELService_callDurationSupervision,
6726 { "callDurationSupervision", "gprscdr.LevelOfCAMELService.callDurationSupervision",
6727 FT_BOOLEAN, 8, NULL, 0x40,
6728 NULL, HFILL }},
6729 { &hf_gprscdr_LevelOfCAMELService_onlineCharging,
6730 { "onlineCharging", "gprscdr.LevelOfCAMELService.onlineCharging",
6731 FT_BOOLEAN, 8, NULL, 0x20,
6732 NULL, HFILL }},
6733 { &hf_gprscdr_ServiceConditionChangeV651_qoSChange,
6734 { "qoSChange", "gprscdr.ServiceConditionChangeV651.qoSChange",
6735 FT_BOOLEAN, 8, NULL, 0x80,
6736 NULL, HFILL }},
6737 { &hf_gprscdr_ServiceConditionChangeV651_sGSNChange,
6738 { "sGSNChange", "gprscdr.ServiceConditionChangeV651.sGSNChange",
6739 FT_BOOLEAN, 8, NULL, 0x40,
6740 NULL, HFILL }},
6741 { &hf_gprscdr_ServiceConditionChangeV651_sGSNPLMNIDChange,
6742 { "sGSNPLMNIDChange", "gprscdr.ServiceConditionChangeV651.sGSNPLMNIDChange",
6743 FT_BOOLEAN, 8, NULL, 0x20,
6744 NULL, HFILL }},
6745 { &hf_gprscdr_ServiceConditionChangeV651_tariffTimeSwitch,
6746 { "tariffTimeSwitch", "gprscdr.ServiceConditionChangeV651.tariffTimeSwitch",
6747 FT_BOOLEAN, 8, NULL, 0x10,
6748 NULL, HFILL }},
6749 { &hf_gprscdr_ServiceConditionChangeV651_pDPContextRelease,
6750 { "pDPContextRelease", "gprscdr.ServiceConditionChangeV651.pDPContextRelease",
6751 FT_BOOLEAN, 8, NULL, 0x08,
6752 NULL, HFILL }},
6753 { &hf_gprscdr_ServiceConditionChangeV651_rATChange,
6754 { "rATChange", "gprscdr.ServiceConditionChangeV651.rATChange",
6755 FT_BOOLEAN, 8, NULL, 0x04,
6756 NULL, HFILL }},
6757 { &hf_gprscdr_ServiceConditionChangeV651_serviceIdledOut,
6758 { "serviceIdledOut", "gprscdr.ServiceConditionChangeV651.serviceIdledOut",
6759 FT_BOOLEAN, 8, NULL, 0x02,
6760 NULL, HFILL }},
6761 { &hf_gprscdr_ServiceConditionChangeV651_qCTExpiry,
6762 { "qCTExpiry", "gprscdr.ServiceConditionChangeV651.qCTExpiry",
6763 FT_BOOLEAN, 8, NULL, 0x01,
6764 NULL, HFILL }},
6765 { &hf_gprscdr_ServiceConditionChangeV651_configurationChange,
6766 { "configurationChange", "gprscdr.ServiceConditionChangeV651.configurationChange",
6767 FT_BOOLEAN, 8, NULL, 0x80,
6768 NULL, HFILL }},
6769 { &hf_gprscdr_ServiceConditionChangeV651_serviceStop,
6770 { "serviceStop", "gprscdr.ServiceConditionChangeV651.serviceStop",
6771 FT_BOOLEAN, 8, NULL, 0x40,
6772 NULL, HFILL }},
6773 { &hf_gprscdr_ServiceConditionChangeV651_timeThresholdReached,
6774 { "timeThresholdReached", "gprscdr.ServiceConditionChangeV651.timeThresholdReached",
6775 FT_BOOLEAN, 8, NULL, 0x20,
6776 NULL, HFILL }},
6777 { &hf_gprscdr_ServiceConditionChangeV651_volumeThresholdReached,
6778 { "volumeThresholdReached", "gprscdr.ServiceConditionChangeV651.volumeThresholdReached",
6779 FT_BOOLEAN, 8, NULL, 0x10,
6780 NULL, HFILL }},
6781 { &hf_gprscdr_ServiceConditionChangeV651_spare_bit12,
6782 { "spare_bit12", "gprscdr.ServiceConditionChangeV651.spare.bit12",
6783 FT_BOOLEAN, 8, NULL, 0x08,
6784 NULL, HFILL }},
6785 { &hf_gprscdr_ServiceConditionChangeV651_timeExhausted,
6786 { "timeExhausted", "gprscdr.ServiceConditionChangeV651.timeExhausted",
6787 FT_BOOLEAN, 8, NULL, 0x04,
6788 NULL, HFILL }},
6789 { &hf_gprscdr_ServiceConditionChangeV651_volumeExhausted,
6790 { "volumeExhausted", "gprscdr.ServiceConditionChangeV651.volumeExhausted",
6791 FT_BOOLEAN, 8, NULL, 0x02,
6792 NULL, HFILL }},
6793 { &hf_gprscdr_ServiceConditionChangeV651_timeout,
6794 { "timeout", "gprscdr.ServiceConditionChangeV651.timeout",
6795 FT_BOOLEAN, 8, NULL, 0x01,
6796 NULL, HFILL }},
6797 { &hf_gprscdr_ServiceConditionChangeV651_returnRequested,
6798 { "returnRequested", "gprscdr.ServiceConditionChangeV651.returnRequested",
6799 FT_BOOLEAN, 8, NULL, 0x80,
6800 NULL, HFILL }},
6801 { &hf_gprscdr_ServiceConditionChangeV651_reauthorisationRequest,
6802 { "reauthorisationRequest", "gprscdr.ServiceConditionChangeV651.reauthorisationRequest",
6803 FT_BOOLEAN, 8, NULL, 0x40,
6804 NULL, HFILL }},
6805 { &hf_gprscdr_ServiceConditionChangeV651_continueOngoingSession,
6806 { "continueOngoingSession", "gprscdr.ServiceConditionChangeV651.continueOngoingSession",
6807 FT_BOOLEAN, 8, NULL, 0x20,
6808 NULL, HFILL }},
6809 { &hf_gprscdr_ServiceConditionChangeV651_retryAndTerminateOngoingSession,
6810 { "retryAndTerminateOngoingSession", "gprscdr.ServiceConditionChangeV651.retryAndTerminateOngoingSession",
6811 FT_BOOLEAN, 8, NULL, 0x10,
6812 NULL, HFILL }},
6813 { &hf_gprscdr_ServiceConditionChangeV651_terminateOngoingSession,
6814 { "terminateOngoingSession", "gprscdr.ServiceConditionChangeV651.terminateOngoingSession",
6815 FT_BOOLEAN, 8, NULL, 0x08,
6816 NULL, HFILL }},
6817 { &hf_gprscdr_ServiceConditionChangeV750_qoSChange,
6818 { "qoSChange", "gprscdr.ServiceConditionChangeV750.qoSChange",
6819 FT_BOOLEAN, 8, NULL, 0x80,
6820 NULL, HFILL }},
6821 { &hf_gprscdr_ServiceConditionChangeV750_sGSNChange,
6822 { "sGSNChange", "gprscdr.ServiceConditionChangeV750.sGSNChange",
6823 FT_BOOLEAN, 8, NULL, 0x40,
6824 NULL, HFILL }},
6825 { &hf_gprscdr_ServiceConditionChangeV750_sGSNPLMNIDChange,
6826 { "sGSNPLMNIDChange", "gprscdr.ServiceConditionChangeV750.sGSNPLMNIDChange",
6827 FT_BOOLEAN, 8, NULL, 0x20,
6828 NULL, HFILL }},
6829 { &hf_gprscdr_ServiceConditionChangeV750_tariffTimeSwitch,
6830 { "tariffTimeSwitch", "gprscdr.ServiceConditionChangeV750.tariffTimeSwitch",
6831 FT_BOOLEAN, 8, NULL, 0x10,
6832 NULL, HFILL }},
6833 { &hf_gprscdr_ServiceConditionChangeV750_pDPContextRelease,
6834 { "pDPContextRelease", "gprscdr.ServiceConditionChangeV750.pDPContextRelease",
6835 FT_BOOLEAN, 8, NULL, 0x08,
6836 NULL, HFILL }},
6837 { &hf_gprscdr_ServiceConditionChangeV750_rATChange,
6838 { "rATChange", "gprscdr.ServiceConditionChangeV750.rATChange",
6839 FT_BOOLEAN, 8, NULL, 0x04,
6840 NULL, HFILL }},
6841 { &hf_gprscdr_ServiceConditionChangeV750_serviceIdledOut,
6842 { "serviceIdledOut", "gprscdr.ServiceConditionChangeV750.serviceIdledOut",
6843 FT_BOOLEAN, 8, NULL, 0x02,
6844 NULL, HFILL }},
6845 { &hf_gprscdr_ServiceConditionChangeV750_reserved,
6846 { "reserved", "gprscdr.ServiceConditionChangeV750.reserved",
6847 FT_BOOLEAN, 8, NULL, 0x01,
6848 NULL, HFILL }},
6849 { &hf_gprscdr_ServiceConditionChangeV750_configurationChange,
6850 { "configurationChange", "gprscdr.ServiceConditionChangeV750.configurationChange",
6851 FT_BOOLEAN, 8, NULL, 0x80,
6852 NULL, HFILL }},
6853 { &hf_gprscdr_ServiceConditionChangeV750_serviceStop,
6854 { "serviceStop", "gprscdr.ServiceConditionChangeV750.serviceStop",
6855 FT_BOOLEAN, 8, NULL, 0x40,
6856 NULL, HFILL }},
6857 { &hf_gprscdr_ServiceConditionChangeV750_dCCATimeThresholdReached,
6858 { "dCCATimeThresholdReached", "gprscdr.ServiceConditionChangeV750.dCCATimeThresholdReached",
6859 FT_BOOLEAN, 8, NULL, 0x20,
6860 NULL, HFILL }},
6861 { &hf_gprscdr_ServiceConditionChangeV750_dCCAVolumeThresholdReached,
6862 { "dCCAVolumeThresholdReached", "gprscdr.ServiceConditionChangeV750.dCCAVolumeThresholdReached",
6863 FT_BOOLEAN, 8, NULL, 0x10,
6864 NULL, HFILL }},
6865 { &hf_gprscdr_ServiceConditionChangeV750_dCCAServiceSpecificUnitThresholdReached,
6866 { "dCCAServiceSpecificUnitThresholdReached", "gprscdr.ServiceConditionChangeV750.dCCAServiceSpecificUnitThresholdReached",
6867 FT_BOOLEAN, 8, NULL, 0x08,
6868 NULL, HFILL }},
6869 { &hf_gprscdr_ServiceConditionChangeV750_dCCATimeExhausted,
6870 { "dCCATimeExhausted", "gprscdr.ServiceConditionChangeV750.dCCATimeExhausted",
6871 FT_BOOLEAN, 8, NULL, 0x04,
6872 NULL, HFILL }},
6873 { &hf_gprscdr_ServiceConditionChangeV750_dCCAVolumeExhausted,
6874 { "dCCAVolumeExhausted", "gprscdr.ServiceConditionChangeV750.dCCAVolumeExhausted",
6875 FT_BOOLEAN, 8, NULL, 0x02,
6876 NULL, HFILL }},
6877 { &hf_gprscdr_ServiceConditionChangeV750_dCCAValidityTimeout,
6878 { "dCCAValidityTimeout", "gprscdr.ServiceConditionChangeV750.dCCAValidityTimeout",
6879 FT_BOOLEAN, 8, NULL, 0x01,
6880 NULL, HFILL }},
6881 { &hf_gprscdr_ServiceConditionChangeV750_reserved2,
6882 { "reserved2", "gprscdr.ServiceConditionChangeV750.reserved2",
6883 FT_BOOLEAN, 8, NULL, 0x80,
6884 NULL, HFILL }},
6885 { &hf_gprscdr_ServiceConditionChangeV750_dCCAReauthorisationRequest,
6886 { "dCCAReauthorisationRequest", "gprscdr.ServiceConditionChangeV750.dCCAReauthorisationRequest",
6887 FT_BOOLEAN, 8, NULL, 0x40,
6888 NULL, HFILL }},
6889 { &hf_gprscdr_ServiceConditionChangeV750_dCCAContinueOngoingSession,
6890 { "dCCAContinueOngoingSession", "gprscdr.ServiceConditionChangeV750.dCCAContinueOngoingSession",
6891 FT_BOOLEAN, 8, NULL, 0x20,
6892 NULL, HFILL }},
6893 { &hf_gprscdr_ServiceConditionChangeV750_dCCARetryAndTerminateOngoingSession,
6894 { "dCCARetryAndTerminateOngoingSession", "gprscdr.ServiceConditionChangeV750.dCCARetryAndTerminateOngoingSession",
6895 FT_BOOLEAN, 8, NULL, 0x10,
6896 NULL, HFILL }},
6897 { &hf_gprscdr_ServiceConditionChangeV750_dCCATerminateOngoingSession,
6898 { "dCCATerminateOngoingSession", "gprscdr.ServiceConditionChangeV750.dCCATerminateOngoingSession",
6899 FT_BOOLEAN, 8, NULL, 0x08,
6900 NULL, HFILL }},
6901 { &hf_gprscdr_ServiceConditionChangeV750_cGI_SAIChange,
6902 { "cGI-SAIChange", "gprscdr.ServiceConditionChangeV750.cGI.SAIChange",
6903 FT_BOOLEAN, 8, NULL, 0x04,
6904 NULL, HFILL }},
6905 { &hf_gprscdr_ServiceConditionChangeV750_rAIChange,
6906 { "rAIChange", "gprscdr.ServiceConditionChangeV750.rAIChange",
6907 FT_BOOLEAN, 8, NULL, 0x02,
6908 NULL, HFILL }},
6909 { &hf_gprscdr_ServiceConditionChangeV750_dCCAServiceSpecificUnitExhausted,
6910 { "dCCAServiceSpecificUnitExhausted", "gprscdr.ServiceConditionChangeV750.dCCAServiceSpecificUnitExhausted",
6911 FT_BOOLEAN, 8, NULL, 0x01,
6912 NULL, HFILL }},
6913 { &hf_gprscdr_ServiceConditionChangeV750_recordClosure,
6914 { "recordClosure", "gprscdr.ServiceConditionChangeV750.recordClosure",
6915 FT_BOOLEAN, 8, NULL, 0x80,
6916 NULL, HFILL }},
6917 { &hf_gprscdr_ServiceConditionChangeV750_timeLimit,
6918 { "timeLimit", "gprscdr.ServiceConditionChangeV750.timeLimit",
6919 FT_BOOLEAN, 8, NULL, 0x40,
6920 NULL, HFILL }},
6921 { &hf_gprscdr_ServiceConditionChangeV750_volumeLimit,
6922 { "volumeLimit", "gprscdr.ServiceConditionChangeV750.volumeLimit",
6923 FT_BOOLEAN, 8, NULL, 0x20,
6924 NULL, HFILL }},
6925 { &hf_gprscdr_ServiceConditionChangeV750_serviceSpecificUnitLimit,
6926 { "serviceSpecificUnitLimit", "gprscdr.ServiceConditionChangeV750.serviceSpecificUnitLimit",
6927 FT_BOOLEAN, 8, NULL, 0x10,
6928 NULL, HFILL }},
6929 { &hf_gprscdr_ServiceConditionChangeV750_envelopeClosure,
6930 { "envelopeClosure", "gprscdr.ServiceConditionChangeV750.envelopeClosure",
6931 FT_BOOLEAN, 8, NULL, 0x08,
6932 NULL, HFILL }},
6933 { &hf_gprscdr_PresenceReportingAreaNode_oCS,
6934 { "oCS", "gprscdr.PresenceReportingAreaNode.oCS",
6935 FT_BOOLEAN, 8, NULL, 0x80,
6936 NULL, HFILL }},
6937 { &hf_gprscdr_PresenceReportingAreaNode_pCRF,
6938 { "pCRF", "gprscdr.PresenceReportingAreaNode.pCRF",
6939 FT_BOOLEAN, 8, NULL, 0x40,
6940 NULL, HFILL }},
6941 { &hf_gprscdr_ServiceConditionChange_qoSChange,
6942 { "qoSChange", "gprscdr.ServiceConditionChange.qoSChange",
6943 FT_BOOLEAN, 8, NULL, 0x80,
6944 NULL, HFILL }},
6945 { &hf_gprscdr_ServiceConditionChange_sGSNChange,
6946 { "sGSNChange", "gprscdr.ServiceConditionChange.sGSNChange",
6947 FT_BOOLEAN, 8, NULL, 0x40,
6948 NULL, HFILL }},
6949 { &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange,
6950 { "sGSNPLMNIDChange", "gprscdr.ServiceConditionChange.sGSNPLMNIDChange",
6951 FT_BOOLEAN, 8, NULL, 0x20,
6952 NULL, HFILL }},
6953 { &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch,
6954 { "tariffTimeSwitch", "gprscdr.ServiceConditionChange.tariffTimeSwitch",
6955 FT_BOOLEAN, 8, NULL, 0x10,
6956 NULL, HFILL }},
6957 { &hf_gprscdr_ServiceConditionChange_pDPContextRelease,
6958 { "pDPContextRelease", "gprscdr.ServiceConditionChange.pDPContextRelease",
6959 FT_BOOLEAN, 8, NULL, 0x08,
6960 NULL, HFILL }},
6961 { &hf_gprscdr_ServiceConditionChange_rATChange,
6962 { "rATChange", "gprscdr.ServiceConditionChange.rATChange",
6963 FT_BOOLEAN, 8, NULL, 0x04,
6964 NULL, HFILL }},
6965 { &hf_gprscdr_ServiceConditionChange_serviceIdledOut,
6966 { "serviceIdledOut", "gprscdr.ServiceConditionChange.serviceIdledOut",
6967 FT_BOOLEAN, 8, NULL, 0x02,
6968 NULL, HFILL }},
6969 { &hf_gprscdr_ServiceConditionChange_reserved,
6970 { "reserved", "gprscdr.ServiceConditionChange.reserved",
6971 FT_BOOLEAN, 8, NULL, 0x01,
6972 NULL, HFILL }},
6973 { &hf_gprscdr_ServiceConditionChange_configurationChange,
6974 { "configurationChange", "gprscdr.ServiceConditionChange.configurationChange",
6975 FT_BOOLEAN, 8, NULL, 0x80,
6976 NULL, HFILL }},
6977 { &hf_gprscdr_ServiceConditionChange_serviceStop,
6978 { "serviceStop", "gprscdr.ServiceConditionChange.serviceStop",
6979 FT_BOOLEAN, 8, NULL, 0x40,
6980 NULL, HFILL }},
6981 { &hf_gprscdr_ServiceConditionChange_dCCATimeThresholdReached,
6982 { "dCCATimeThresholdReached", "gprscdr.ServiceConditionChange.dCCATimeThresholdReached",
6983 FT_BOOLEAN, 8, NULL, 0x20,
6984 NULL, HFILL }},
6985 { &hf_gprscdr_ServiceConditionChange_dCCAVolumeThresholdReached,
6986 { "dCCAVolumeThresholdReached", "gprscdr.ServiceConditionChange.dCCAVolumeThresholdReached",
6987 FT_BOOLEAN, 8, NULL, 0x10,
6988 NULL, HFILL }},
6989 { &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitThresholdReached,
6990 { "dCCAServiceSpecificUnitThresholdReached", "gprscdr.ServiceConditionChange.dCCAServiceSpecificUnitThresholdReached",
6991 FT_BOOLEAN, 8, NULL, 0x08,
6992 NULL, HFILL }},
6993 { &hf_gprscdr_ServiceConditionChange_dCCATimeExhausted,
6994 { "dCCATimeExhausted", "gprscdr.ServiceConditionChange.dCCATimeExhausted",
6995 FT_BOOLEAN, 8, NULL, 0x04,
6996 NULL, HFILL }},
6997 { &hf_gprscdr_ServiceConditionChange_dCCAVolumeExhausted,
6998 { "dCCAVolumeExhausted", "gprscdr.ServiceConditionChange.dCCAVolumeExhausted",
6999 FT_BOOLEAN, 8, NULL, 0x02,
7000 NULL, HFILL }},
7001 { &hf_gprscdr_ServiceConditionChange_dCCAValidityTimeout,
7002 { "dCCAValidityTimeout", "gprscdr.ServiceConditionChange.dCCAValidityTimeout",
7003 FT_BOOLEAN, 8, NULL, 0x01,
7004 NULL, HFILL }},
7005 { &hf_gprscdr_ServiceConditionChange_reserved1,
7006 { "reserved1", "gprscdr.ServiceConditionChange.reserved1",
7007 FT_BOOLEAN, 8, NULL, 0x80,
7008 NULL, HFILL }},
7009 { &hf_gprscdr_ServiceConditionChange_dCCAReauthorisationRequest,
7010 { "dCCAReauthorisationRequest", "gprscdr.ServiceConditionChange.dCCAReauthorisationRequest",
7011 FT_BOOLEAN, 8, NULL, 0x40,
7012 NULL, HFILL }},
7013 { &hf_gprscdr_ServiceConditionChange_dCCAContinueOngoingSession,
7014 { "dCCAContinueOngoingSession", "gprscdr.ServiceConditionChange.dCCAContinueOngoingSession",
7015 FT_BOOLEAN, 8, NULL, 0x20,
7016 NULL, HFILL }},
7017 { &hf_gprscdr_ServiceConditionChange_dCCARetryAndTerminateOngoingSession,
7018 { "dCCARetryAndTerminateOngoingSession", "gprscdr.ServiceConditionChange.dCCARetryAndTerminateOngoingSession",
7019 FT_BOOLEAN, 8, NULL, 0x10,
7020 NULL, HFILL }},
7021 { &hf_gprscdr_ServiceConditionChange_dCCATerminateOngoingSession,
7022 { "dCCATerminateOngoingSession", "gprscdr.ServiceConditionChange.dCCATerminateOngoingSession",
7023 FT_BOOLEAN, 8, NULL, 0x08,
7024 NULL, HFILL }},
7025 { &hf_gprscdr_ServiceConditionChange_cGI_SAIChange,
7026 { "cGI-SAIChange", "gprscdr.ServiceConditionChange.cGI.SAIChange",
7027 FT_BOOLEAN, 8, NULL, 0x04,
7028 NULL, HFILL }},
7029 { &hf_gprscdr_ServiceConditionChange_rAIChange,
7030 { "rAIChange", "gprscdr.ServiceConditionChange.rAIChange",
7031 FT_BOOLEAN, 8, NULL, 0x02,
7032 NULL, HFILL }},
7033 { &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitExhausted,
7034 { "dCCAServiceSpecificUnitExhausted", "gprscdr.ServiceConditionChange.dCCAServiceSpecificUnitExhausted",
7035 FT_BOOLEAN, 8, NULL, 0x01,
7036 NULL, HFILL }},
7037 { &hf_gprscdr_ServiceConditionChange_recordClosure,
7038 { "recordClosure", "gprscdr.ServiceConditionChange.recordClosure",
7039 FT_BOOLEAN, 8, NULL, 0x80,
7040 NULL, HFILL }},
7041 { &hf_gprscdr_ServiceConditionChange_timeLimit,
7042 { "timeLimit", "gprscdr.ServiceConditionChange.timeLimit",
7043 FT_BOOLEAN, 8, NULL, 0x40,
7044 NULL, HFILL }},
7045 { &hf_gprscdr_ServiceConditionChange_volumeLimit,
7046 { "volumeLimit", "gprscdr.ServiceConditionChange.volumeLimit",
7047 FT_BOOLEAN, 8, NULL, 0x20,
7048 NULL, HFILL }},
7049 { &hf_gprscdr_ServiceConditionChange_serviceSpecificUnitLimit,
7050 { "serviceSpecificUnitLimit", "gprscdr.ServiceConditionChange.serviceSpecificUnitLimit",
7051 FT_BOOLEAN, 8, NULL, 0x10,
7052 NULL, HFILL }},
7053 { &hf_gprscdr_ServiceConditionChange_envelopeClosure,
7054 { "envelopeClosure", "gprscdr.ServiceConditionChange.envelopeClosure",
7055 FT_BOOLEAN, 8, NULL, 0x08,
7056 NULL, HFILL }},
7057 { &hf_gprscdr_ServiceConditionChange_eCGIChange,
7058 { "eCGIChange", "gprscdr.ServiceConditionChange.eCGIChange",
7059 FT_BOOLEAN, 8, NULL, 0x04,
7060 NULL, HFILL }},
7061 { &hf_gprscdr_ServiceConditionChange_tAIChange,
7062 { "tAIChange", "gprscdr.ServiceConditionChange.tAIChange",
7063 FT_BOOLEAN, 8, NULL, 0x02,
7064 NULL, HFILL }},
7065 { &hf_gprscdr_ServiceConditionChange_userLocationChange,
7066 { "userLocationChange", "gprscdr.ServiceConditionChange.userLocationChange",
7067 FT_BOOLEAN, 8, NULL, 0x01,
7068 NULL, HFILL }},
7069 { &hf_gprscdr_ServiceConditionChange_userCSGInformationChange,
7070 { "userCSGInformationChange", "gprscdr.ServiceConditionChange.userCSGInformationChange",
7071 FT_BOOLEAN, 8, NULL, 0x80,
7072 NULL, HFILL }},
7073 { &hf_gprscdr_ServiceConditionChange_presenceInPRAChange,
7074 { "presenceInPRAChange", "gprscdr.ServiceConditionChange.presenceInPRAChange",
7075 FT_BOOLEAN, 8, NULL, 0x40,
7076 NULL, HFILL }},
7077 { &hf_gprscdr_ServiceConditionChange_accessChangeOfSDF,
7078 { "accessChangeOfSDF", "gprscdr.ServiceConditionChange.accessChangeOfSDF",
7079 FT_BOOLEAN, 8, NULL, 0x20,
7080 NULL, HFILL }},
7081 { &hf_gprscdr_ServiceConditionChange_indirectServiceConditionChange,
7082 { "indirectServiceConditionChange", "gprscdr.ServiceConditionChange.indirectServiceConditionChange",
7083 FT_BOOLEAN, 8, NULL, 0x10,
7084 NULL, HFILL }},
7085 { &hf_gprscdr_ServiceConditionChange_servingPLMNRateControlChange,
7086 { "servingPLMNRateControlChange", "gprscdr.ServiceConditionChange.servingPLMNRateControlChange",
7087 FT_BOOLEAN, 8, NULL, 0x08,
7088 NULL, HFILL }},
7089 { &hf_gprscdr_ServiceConditionChange_aPNRateControlChange,
7090 { "aPNRateControlChange", "gprscdr.ServiceConditionChange.aPNRateControlChange",
7091 FT_BOOLEAN, 8, NULL, 0x04,
7092 NULL, HFILL }},
7093
7094 /*--- End of included file: packet-gprscdr-hfarr.c ---*/
7095 #line 125 "./asn1/gprscdr/packet-gprscdr-template.c"
7096 };
7097
7098 /* List of subtrees */
7099 static gint *ett[] = {
7100 &ett_gprscdr,
7101 &ett_gprscdr_timestamp,
7102 &ett_gprscdr_plmn_id,
7103 &ett_gprscdr_pdp_pdn_type,
7104 &ett_gprscdr_eps_qos_arp,
7105 &ett_gprscdr_managementextension_information,
7106 &ett_gprscdr_userlocationinformation,
7107
7108 /*--- Included file: packet-gprscdr-ettarr.c ---*/
7109 #line 1 "./asn1/gprscdr/packet-gprscdr-ettarr.c"
7110 &ett_gprscdr_Diagnostics,
7111 &ett_gprscdr_Ecgi,
7112 &ett_gprscdr_EnhancedDiagnostics,
7113 &ett_gprscdr_SEQUENCE_OF_RANNASCause,
7114 &ett_gprscdr_InvolvedParty,
7115 &ett_gprscdr_IPAddress,
7116 &ett_gprscdr_IPBinaryAddress,
7117 &ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength,
7118 &ett_gprscdr_IPBinV6AddressWithPrefixLength,
7119 &ett_gprscdr_IPTextRepresentedAddress,
7120 &ett_gprscdr_LCSClientIdentity,
7121 &ett_gprscdr_LevelOfCAMELService,
7122 &ett_gprscdr_LocationAreaAndCell,
7123 &ett_gprscdr_ManagementExtensions,
7124 &ett_gprscdr_MBMSInformation,
7125 &ett_gprscdr_Ncgi,
7126 &ett_gprscdr_PDPAddress,
7127 &ett_gprscdr_PSCellInformation,
7128 &ett_gprscdr_SCSASAddress,
7129 &ett_gprscdr_ServiceSpecificInfo,
7130 &ett_gprscdr_SubscriptionID,
7131 &ett_gprscdr_ManagementExtension,
7132 &ett_gprscdr_GPRSCallEventRecord,
7133 &ett_gprscdr_GGSNPDPRecord,
7134 &ett_gprscdr_SEQUENCE_OF_GSNAddress,
7135 &ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651,
7136 &ett_gprscdr_GGSNPDPRecordV750,
7137 &ett_gprscdr_EGSNPDPRecord,
7138 &ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651,
7139 &ett_gprscdr_EGSNPDPRecordV750,
7140 &ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750,
7141 &ett_gprscdr_SGSNPDPRecordV651,
7142 &ett_gprscdr_SGSNSMORecordV651,
7143 &ett_gprscdr_SGSNSMTRecordV651,
7144 &ett_gprscdr_ChangeOfCharConditionV651,
7145 &ett_gprscdr_ChangeOfServiceConditionV651,
7146 &ett_gprscdr_ChangeOfServiceConditionV750,
7147 &ett_gprscdr_SEQUENCE_OF_AFRecordInformation,
7148 &ett_gprscdr_ServiceConditionChangeV651,
7149 &ett_gprscdr_ServiceConditionChangeV750,
7150 &ett_gprscdr_GPRSRecord,
7151 &ett_gprscdr_SGWRecord,
7152 &ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition,
7153 &ett_gprscdr_SEQUENCE_OF_ServingNodeType,
7154 &ett_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport,
7155 &ett_gprscdr_PGWRecord,
7156 &ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition,
7157 &ett_gprscdr_TDFRecord,
7158 &ett_gprscdr_IPERecord,
7159 &ett_gprscdr_EPDGRecord,
7160 &ett_gprscdr_TWAGRecord,
7161 &ett_gprscdr_SGSNMMRecord,
7162 &ett_gprscdr_SEQUENCE_OF_ChangeLocation,
7163 &ett_gprscdr_SGSNPDPRecord,
7164 &ett_gprscdr_SGSNSMORecord,
7165 &ett_gprscdr_SGSNSMTRecord,
7166 &ett_gprscdr_SGSNMTLCSRecord,
7167 &ett_gprscdr_SGSNMOLCSRecord,
7168 &ett_gprscdr_SGSNNILCSRecord,
7169 &ett_gprscdr_SGSNMBMSRecord,
7170 &ett_gprscdr_SEQUENCE_OF_RAIdentity,
7171 &ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition,
7172 &ett_gprscdr_GGSNMBMSRecord,
7173 &ett_gprscdr_GWMBMSRecord,
7174 &ett_gprscdr_AccessLineIdentifier,
7175 &ett_gprscdr_AFRecordInformation,
7176 &ett_gprscdr_APNRateControl,
7177 &ett_gprscdr_APNRateControlParameters,
7178 &ett_gprscdr_CalleePartyInformation,
7179 &ett_gprscdr_SEQUENCE_OF_InvolvedParty,
7180 &ett_gprscdr_CAMELInformationMM,
7181 &ett_gprscdr_CAMELInformationPDP,
7182 &ett_gprscdr_CAMELInformationSMS,
7183 &ett_gprscdr_ChangeOfCharCondition,
7184 &ett_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo,
7185 &ett_gprscdr_ChangeOfMBMSCondition,
7186 &ett_gprscdr_ChangeOfServiceCondition,
7187 &ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo,
7188 &ett_gprscdr_ChangeLocation,
7189 &ett_gprscdr_EPCQoSInformation,
7190 &ett_gprscdr_EventBasedChargingInformation,
7191 &ett_gprscdr_SEQUENCE_OF_TimeStamp,
7192 &ett_gprscdr_FixedUserLocationInformation,
7193 &ett_gprscdr_Flows,
7194 &ett_gprscdr_T_flowNumber,
7195 &ett_gprscdr_MOExceptionDataCounter,
7196 &ett_gprscdr_PresenceReportingAreaInfo,
7197 &ett_gprscdr_PresenceReportingAreaNode,
7198 &ett_gprscdr_PSFurnishChargingInformation,
7199 &ett_gprscdr_RANSecondaryRATUsageReport,
7200 &ett_gprscdr_RelatedChangeOfCharCondition,
7201 &ett_gprscdr_RelatedChangeOfServiceCondition,
7202 &ett_gprscdr_ServiceConditionChange,
7203 &ett_gprscdr_ServingPLMNRateControl,
7204 &ett_gprscdr_TimeQuotaMechanism,
7205 &ett_gprscdr_TWANUserLocationInfo,
7206 &ett_gprscdr_UserCSGInformation,
7207 &ett_gprscdr_UWANUserLocationInfo,
7208 &ett_gprscdr_VoLTEInformation,
7209 &ett_gprscdr_WLANOperatorId,
7210
7211 /*--- End of included file: packet-gprscdr-ettarr.c ---*/
7212 #line 137 "./asn1/gprscdr/packet-gprscdr-template.c"
7213 };
7214
7215 static ei_register_info ei[] = {
7216 { &ei_gprscdr_not_dissected, { "gprscdr.not_dissected", PI_UNDECODED, PI_WARN, "Not dissected", EXPFILL }},
7217 { &ei_gprscdr_choice_not_found, { "gprscdr.error.choice_not_found", PI_MALFORMED, PI_WARN, "GPRS CDR Error: This choice field(Record type) was not found", EXPFILL }},
7218 };
7219
7220 expert_module_t* expert_gprscdr;
7221
7222 proto_gprscdr = proto_register_protocol(PNAME, PSNAME, PFNAME);
7223
7224 proto_register_field_array(proto_gprscdr, hf, array_length(hf));
7225 proto_register_subtree_array(ett, array_length(ett));
7226 expert_gprscdr = expert_register_protocol(proto_gprscdr);
7227 expert_register_field_array(expert_gprscdr, ei, array_length(ei));
7228 }
7229
7230 /* The registration hand-off routine */
7231
7232 /*
7233 * Editor modelines
7234 *
7235 * Local Variables:
7236 * c-basic-offset: 2
7237 * tab-width: 8
7238 * indent-tabs-mode: nil
7239 * End:
7240 *
7241 * ex: set shiftwidth=2 tabstop=8 expandtab:
7242 * :indentSize=2:tabSize=8:noTabs=true:
7243 */
7244