1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-charging_ase.c */
4 /* ../../tools/asn2wrs.py -b -p charging_ase -c ./charging_ase.cnf -s ./packet-charging_ase-template -D . -O ../../epan/dissectors Tariffing-Data-Types.asn */
6 /* Input file: packet-charging_ase-template.c */
8 #line 1 "../../asn1/charging_ase/packet-charging_ase-template.c"
9 /* packet-charging_ase-template.c
10 * Copyright 2009 , Anders Broman <anders.broman [AT] ericsson.com>
14 * Wireshark - Network traffic analyzer
15 * By Gerald Combs <gerald@wireshark.org>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
31 * References: ETSI ES 201 296 V1.3.1 (2003-04)
37 #include <epan/packet.h>
38 #include <epan/asn1.h>
40 #include "packet-ber.h"
41 #include "packet-charging_ase.h"
43 #define PNAME "Charging ASE"
44 #define PSNAME "ChargingASE"
45 #define PFNAME "chargingase"
47 /* Define the Charging ASE proto */
48 static int proto_charging_ase
= -1;
51 /*--- Included file: packet-charging_ase-hf.c ---*/
52 #line 1 "../../asn1/charging_ase/packet-charging_ase-hf.c"
53 static int hf_charging_ase_charging_ase_ChargingMessageType_PDU
= -1; /* ChargingMessageType */
54 static int hf_charging_ase_crgt
= -1; /* ChargingTariffInformation */
55 static int hf_charging_ase_aocrg
= -1; /* AddOnChargingInformation */
56 static int hf_charging_ase_crga
= -1; /* ChargingAcknowledgementInformation */
57 static int hf_charging_ase_start
= -1; /* StartCharging */
58 static int hf_charging_ase_stop
= -1; /* StopCharging */
59 static int hf_charging_ase_acknowledgementIndicators
= -1; /* T_acknowledgementIndicators */
60 static int hf_charging_ase_extensions
= -1; /* SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField */
61 static int hf_charging_ase_extensions_item
= -1; /* ExtensionField */
62 static int hf_charging_ase_originationIdentification
= -1; /* ChargingReferenceIdentification */
63 static int hf_charging_ase_destinationIdentification
= -1; /* ChargingReferenceIdentification */
64 static int hf_charging_ase_chargingControlIndicators
= -1; /* ChargingControlIndicators */
65 static int hf_charging_ase_addOncharge
= -1; /* T_addOncharge */
66 static int hf_charging_ase_addOnChargeCurrency
= -1; /* CurrencyFactorScale */
67 static int hf_charging_ase_addOnChargePulse
= -1; /* PulseUnits */
68 static int hf_charging_ase_currency
= -1; /* Currency */
69 static int hf_charging_ase_chargingTariff
= -1; /* T_chargingTariff */
70 static int hf_charging_ase_tariffCurrency
= -1; /* TariffCurrency */
71 static int hf_charging_ase_tariffPulse
= -1; /* TariffPulse */
72 static int hf_charging_ase_local
= -1; /* INTEGER */
73 static int hf_charging_ase_global
= -1; /* OBJECT_IDENTIFIER */
74 static int hf_charging_ase_currencyFactorScale
= -1; /* CurrencyFactorScale */
75 static int hf_charging_ase_tariffDuration
= -1; /* TariffDuration */
76 static int hf_charging_ase_subTariffControl
= -1; /* SubTariffControl */
77 static int hf_charging_ase_pulseUnits
= -1; /* PulseUnits */
78 static int hf_charging_ase_chargeUnitTimeInterval
= -1; /* ChargeUnitTimeInterval */
79 static int hf_charging_ase_currencyFactor
= -1; /* CurrencyFactor */
80 static int hf_charging_ase_currencyScale
= -1; /* CurrencyScale */
81 static int hf_charging_ase_type
= -1; /* Code */
82 static int hf_charging_ase_criticality
= -1; /* CriticalityType */
83 static int hf_charging_ase_value
= -1; /* T_value */
84 static int hf_charging_ase_networkOperators
= -1; /* SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification */
85 static int hf_charging_ase_networkOperators_item
= -1; /* NetworkIdentification */
86 static int hf_charging_ase_stopIndicators
= -1; /* T_stopIndicators */
87 static int hf_charging_ase_currentTariffCurrency
= -1; /* TariffCurrencyFormat */
88 static int hf_charging_ase_tariffSwitchCurrency
= -1; /* TariffSwitchCurrency */
89 static int hf_charging_ase_nextTariffCurrency
= -1; /* TariffCurrencyFormat */
90 static int hf_charging_ase_tariffSwitchoverTime
= -1; /* TariffSwitchoverTime */
91 static int hf_charging_ase_communicationChargeSequenceCurrency
= -1; /* SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency */
92 static int hf_charging_ase_communicationChargeSequenceCurrency_item
= -1; /* CommunicationChargeCurrency */
93 static int hf_charging_ase_tariffControlIndicators
= -1; /* T_tariffControlIndicators */
94 static int hf_charging_ase_callAttemptChargeCurrency
= -1; /* CurrencyFactorScale */
95 static int hf_charging_ase_callSetupChargeCurrency
= -1; /* CurrencyFactorScale */
96 static int hf_charging_ase_currentTariffPulse
= -1; /* TariffPulseFormat */
97 static int hf_charging_ase_tariffSwitchPulse
= -1; /* TariffSwitchPulse */
98 static int hf_charging_ase_nextTariffPulse
= -1; /* TariffPulseFormat */
99 static int hf_charging_ase_communicationChargeSequencePulse
= -1; /* SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse */
100 static int hf_charging_ase_communicationChargeSequencePulse_item
= -1; /* CommunicationChargePulse */
101 static int hf_charging_ase_tariffControlIndicators_01
= -1; /* T_tariffControlIndicators_01 */
102 static int hf_charging_ase_callAttemptChargePulse
= -1; /* PulseUnits */
103 static int hf_charging_ase_callSetupChargePulse
= -1; /* PulseUnits */
104 static int hf_charging_ase_networkIdentification
= -1; /* NetworkIdentification */
105 static int hf_charging_ase_referenceID
= -1; /* ReferenceID */
107 static int hf_charging_ase_T_acknowledgementIndicators_accepted
= -1;
108 static int hf_charging_ase_ChargingControlIndicators_subscriberCharge
= -1;
109 static int hf_charging_ase_ChargingControlIndicators_immediateChangeOfActuallyAppliedTariff
= -1;
110 static int hf_charging_ase_ChargingControlIndicators_delayUntilStart
= -1;
111 static int hf_charging_ase_T_stopIndicators_callAttemptChargesApplicable
= -1;
112 static int hf_charging_ase_SubTariffControl_oneTimeCharge
= -1;
113 static int hf_charging_ase_T_tariffControlIndicators_non_cyclicTariff
= -1;
114 static int hf_charging_ase_T_tariffControlIndicators_01_non_cyclicTariff
= -1;
116 /*--- End of included file: packet-charging_ase-hf.c ---*/
117 #line 43 "../../asn1/charging_ase/packet-charging_ase-template.c"
119 static int ett_charging_ase
= -1;
121 /*--- Included file: packet-charging_ase-ett.c ---*/
122 #line 1 "../../asn1/charging_ase/packet-charging_ase-ett.c"
123 static gint ett_charging_ase_ChargingMessageType
= -1;
124 static gint ett_charging_ase_ChargingAcknowledgementInformation
= -1;
125 static gint ett_charging_ase_T_acknowledgementIndicators
= -1;
126 static gint ett_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
= -1;
127 static gint ett_charging_ase_ChargingControlIndicators
= -1;
128 static gint ett_charging_ase_AddOnChargingInformation
= -1;
129 static gint ett_charging_ase_T_addOncharge
= -1;
130 static gint ett_charging_ase_ChargingTariffInformation
= -1;
131 static gint ett_charging_ase_T_chargingTariff
= -1;
132 static gint ett_charging_ase_Code
= -1;
133 static gint ett_charging_ase_CommunicationChargeCurrency
= -1;
134 static gint ett_charging_ase_CommunicationChargePulse
= -1;
135 static gint ett_charging_ase_CurrencyFactorScale
= -1;
136 static gint ett_charging_ase_ExtensionField
= -1;
137 static gint ett_charging_ase_StartCharging
= -1;
138 static gint ett_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification
= -1;
139 static gint ett_charging_ase_StopCharging
= -1;
140 static gint ett_charging_ase_T_stopIndicators
= -1;
141 static gint ett_charging_ase_SubTariffControl
= -1;
142 static gint ett_charging_ase_TariffCurrency
= -1;
143 static gint ett_charging_ase_TariffSwitchCurrency
= -1;
144 static gint ett_charging_ase_TariffCurrencyFormat
= -1;
145 static gint ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency
= -1;
146 static gint ett_charging_ase_T_tariffControlIndicators
= -1;
147 static gint ett_charging_ase_TariffPulse
= -1;
148 static gint ett_charging_ase_TariffSwitchPulse
= -1;
149 static gint ett_charging_ase_TariffPulseFormat
= -1;
150 static gint ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse
= -1;
151 static gint ett_charging_ase_T_tariffControlIndicators_01
= -1;
152 static gint ett_charging_ase_ChargingReferenceIdentification
= -1;
154 /*--- End of included file: packet-charging_ase-ett.c ---*/
155 #line 46 "../../asn1/charging_ase/packet-charging_ase-template.c"
157 static dissector_handle_t charging_ase_handle
;
160 /*--- Included file: packet-charging_ase-fn.c ---*/
161 #line 1 "../../asn1/charging_ase/packet-charging_ase-fn.c"
163 static const asn_namedbit ChargingControlIndicators_bits
[] = {
164 { 0, &hf_charging_ase_ChargingControlIndicators_subscriberCharge
, -1, -1, "subscriberCharge", NULL
},
165 { 1, &hf_charging_ase_ChargingControlIndicators_immediateChangeOfActuallyAppliedTariff
, -1, -1, "immediateChangeOfActuallyAppliedTariff", NULL
},
166 { 2, &hf_charging_ase_ChargingControlIndicators_delayUntilStart
, -1, -1, "delayUntilStart", NULL
},
167 { 0, NULL
, 0, 0, NULL
, NULL
}
171 dissect_charging_ase_ChargingControlIndicators(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
172 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
173 ChargingControlIndicators_bits
, hf_index
, ett_charging_ase_ChargingControlIndicators
,
182 dissect_charging_ase_CurrencyFactor(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
183 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
192 dissect_charging_ase_CurrencyScale(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
193 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
200 static const ber_sequence_t CurrencyFactorScale_sequence
[] = {
201 { &hf_charging_ase_currencyFactor
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_CurrencyFactor
},
202 { &hf_charging_ase_currencyScale
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_CurrencyScale
},
203 { NULL
, 0, 0, 0, NULL
}
207 dissect_charging_ase_CurrencyFactorScale(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
208 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
209 CurrencyFactorScale_sequence
, hf_index
, ett_charging_ase_CurrencyFactorScale
);
217 dissect_charging_ase_TariffDuration(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
218 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
225 static const asn_namedbit SubTariffControl_bits
[] = {
226 { 0, &hf_charging_ase_SubTariffControl_oneTimeCharge
, -1, -1, "oneTimeCharge", NULL
},
227 { 0, NULL
, 0, 0, NULL
, NULL
}
231 dissect_charging_ase_SubTariffControl(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
232 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
233 SubTariffControl_bits
, hf_index
, ett_charging_ase_SubTariffControl
,
240 static const ber_sequence_t CommunicationChargeCurrency_sequence
[] = {
241 { &hf_charging_ase_currencyFactorScale
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_CurrencyFactorScale
},
242 { &hf_charging_ase_tariffDuration
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffDuration
},
243 { &hf_charging_ase_subTariffControl
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_charging_ase_SubTariffControl
},
244 { NULL
, 0, 0, 0, NULL
}
248 dissect_charging_ase_CommunicationChargeCurrency(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
249 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
250 CommunicationChargeCurrency_sequence
, hf_index
, ett_charging_ase_CommunicationChargeCurrency
);
256 static const ber_sequence_t SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency_sequence_of
[1] = {
257 { &hf_charging_ase_communicationChargeSequenceCurrency_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_charging_ase_CommunicationChargeCurrency
},
261 dissect_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
262 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
263 SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency_sequence_of
, hf_index
, ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency
);
269 static const asn_namedbit T_tariffControlIndicators_bits
[] = {
270 { 0, &hf_charging_ase_T_tariffControlIndicators_non_cyclicTariff
, -1, -1, "non-cyclicTariff", NULL
},
271 { 0, NULL
, 0, 0, NULL
, NULL
}
275 dissect_charging_ase_T_tariffControlIndicators(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
276 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
277 T_tariffControlIndicators_bits
, hf_index
, ett_charging_ase_T_tariffControlIndicators
,
284 static const ber_sequence_t TariffCurrencyFormat_sequence
[] = {
285 { &hf_charging_ase_communicationChargeSequenceCurrency
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency
},
286 { &hf_charging_ase_tariffControlIndicators
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_tariffControlIndicators
},
287 { &hf_charging_ase_callAttemptChargeCurrency
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_CurrencyFactorScale
},
288 { &hf_charging_ase_callSetupChargeCurrency
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_CurrencyFactorScale
},
289 { NULL
, 0, 0, 0, NULL
}
293 dissect_charging_ase_TariffCurrencyFormat(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
294 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
295 TariffCurrencyFormat_sequence
, hf_index
, ett_charging_ase_TariffCurrencyFormat
);
303 dissect_charging_ase_TariffSwitchoverTime(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
304 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
311 static const ber_sequence_t TariffSwitchCurrency_sequence
[] = {
312 { &hf_charging_ase_nextTariffCurrency
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffCurrencyFormat
},
313 { &hf_charging_ase_tariffSwitchoverTime
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffSwitchoverTime
},
314 { NULL
, 0, 0, 0, NULL
}
318 dissect_charging_ase_TariffSwitchCurrency(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
319 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
320 TariffSwitchCurrency_sequence
, hf_index
, ett_charging_ase_TariffSwitchCurrency
);
326 static const ber_sequence_t TariffCurrency_sequence
[] = {
327 { &hf_charging_ase_currentTariffCurrency
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffCurrencyFormat
},
328 { &hf_charging_ase_tariffSwitchCurrency
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffSwitchCurrency
},
329 { NULL
, 0, 0, 0, NULL
}
333 dissect_charging_ase_TariffCurrency(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
334 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
335 TariffCurrency_sequence
, hf_index
, ett_charging_ase_TariffCurrency
);
343 dissect_charging_ase_PulseUnits(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
344 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
353 dissect_charging_ase_ChargeUnitTimeInterval(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
354 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
361 static const ber_sequence_t CommunicationChargePulse_sequence
[] = {
362 { &hf_charging_ase_pulseUnits
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_PulseUnits
},
363 { &hf_charging_ase_chargeUnitTimeInterval
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargeUnitTimeInterval
},
364 { &hf_charging_ase_tariffDuration
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffDuration
},
365 { NULL
, 0, 0, 0, NULL
}
369 dissect_charging_ase_CommunicationChargePulse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
370 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
371 CommunicationChargePulse_sequence
, hf_index
, ett_charging_ase_CommunicationChargePulse
);
377 static const ber_sequence_t SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse_sequence_of
[1] = {
378 { &hf_charging_ase_communicationChargeSequencePulse_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_charging_ase_CommunicationChargePulse
},
382 dissect_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
383 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
384 SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse_sequence_of
, hf_index
, ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse
);
390 static const asn_namedbit T_tariffControlIndicators_01_bits
[] = {
391 { 0, &hf_charging_ase_T_tariffControlIndicators_01_non_cyclicTariff
, -1, -1, "non-cyclicTariff", NULL
},
392 { 0, NULL
, 0, 0, NULL
, NULL
}
396 dissect_charging_ase_T_tariffControlIndicators_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_
) {
397 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
398 T_tariffControlIndicators_01_bits
, hf_index
, ett_charging_ase_T_tariffControlIndicators_01
,
405 static const ber_sequence_t TariffPulseFormat_sequence
[] = {
406 { &hf_charging_ase_communicationChargeSequencePulse
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse
},
407 { &hf_charging_ase_tariffControlIndicators_01
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_tariffControlIndicators_01
},
408 { &hf_charging_ase_callAttemptChargePulse
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_PulseUnits
},
409 { &hf_charging_ase_callSetupChargePulse
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_PulseUnits
},
410 { NULL
, 0, 0, 0, NULL
}
414 dissect_charging_ase_TariffPulseFormat(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
415 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
416 TariffPulseFormat_sequence
, hf_index
, ett_charging_ase_TariffPulseFormat
);
422 static const ber_sequence_t TariffSwitchPulse_sequence
[] = {
423 { &hf_charging_ase_nextTariffPulse
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffPulseFormat
},
424 { &hf_charging_ase_tariffSwitchoverTime
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffSwitchoverTime
},
425 { NULL
, 0, 0, 0, NULL
}
429 dissect_charging_ase_TariffSwitchPulse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
430 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
431 TariffSwitchPulse_sequence
, hf_index
, ett_charging_ase_TariffSwitchPulse
);
437 static const ber_sequence_t TariffPulse_sequence
[] = {
438 { &hf_charging_ase_currentTariffPulse
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffPulseFormat
},
439 { &hf_charging_ase_tariffSwitchPulse
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffSwitchPulse
},
440 { NULL
, 0, 0, 0, NULL
}
444 dissect_charging_ase_TariffPulse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
445 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
446 TariffPulse_sequence
, hf_index
, ett_charging_ase_TariffPulse
);
452 static const value_string charging_ase_T_chargingTariff_vals
[] = {
453 { 0, "tariffCurrency" },
454 { 1, "tariffPulse" },
458 static const ber_choice_t T_chargingTariff_choice
[] = {
459 { 0, &hf_charging_ase_tariffCurrency
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffCurrency
},
460 { 1, &hf_charging_ase_tariffPulse
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_TariffPulse
},
461 { 0, NULL
, 0, 0, 0, NULL
}
465 dissect_charging_ase_T_chargingTariff(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
466 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
467 T_chargingTariff_choice
, hf_index
, ett_charging_ase_T_chargingTariff
,
476 dissect_charging_ase_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_
) {
477 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
486 dissect_charging_ase_OBJECT_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_
) {
487 offset
= dissect_ber_object_identifier(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
493 static const value_string charging_ase_Code_vals
[] = {
499 static const ber_choice_t Code_choice
[] = {
500 { 0, &hf_charging_ase_local
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_charging_ase_INTEGER
},
501 { 1, &hf_charging_ase_global
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_charging_ase_OBJECT_IDENTIFIER
},
502 { 0, NULL
, 0, 0, 0, NULL
}
506 dissect_charging_ase_Code(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
507 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
508 Code_choice
, hf_index
, ett_charging_ase_Code
,
515 static const value_string charging_ase_CriticalityType_vals
[] = {
523 dissect_charging_ase_CriticalityType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
524 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
533 dissect_charging_ase_T_value(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
534 #line 14 "../../asn1/charging_ase/charging_ase.cnf"
536 proto_tree_add_text(tree
, tvb
, offset
, -1, "Extensions not dissected");
537 return tvb_length(tvb
);
544 static const ber_sequence_t ExtensionField_sequence
[] = {
545 { &hf_charging_ase_type
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_charging_ase_Code
},
546 { &hf_charging_ase_criticality
, BER_CLASS_UNI
, BER_UNI_TAG_ENUMERATED
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_charging_ase_CriticalityType
},
547 { &hf_charging_ase_value
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_value
},
548 { NULL
, 0, 0, 0, NULL
}
552 dissect_charging_ase_ExtensionField(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
553 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
554 ExtensionField_sequence
, hf_index
, ett_charging_ase_ExtensionField
);
560 static const ber_sequence_t SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField_sequence_of
[1] = {
561 { &hf_charging_ase_extensions_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_charging_ase_ExtensionField
},
565 dissect_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
566 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
567 SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField_sequence_of
, hf_index
, ett_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
);
575 dissect_charging_ase_NetworkIdentification(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
576 offset
= dissect_ber_object_identifier(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
584 dissect_charging_ase_ReferenceID(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
585 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
592 static const ber_sequence_t ChargingReferenceIdentification_sequence
[] = {
593 { &hf_charging_ase_networkIdentification
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_NetworkIdentification
},
594 { &hf_charging_ase_referenceID
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ReferenceID
},
595 { NULL
, 0, 0, 0, NULL
}
599 dissect_charging_ase_ChargingReferenceIdentification(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
600 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
601 ChargingReferenceIdentification_sequence
, hf_index
, ett_charging_ase_ChargingReferenceIdentification
);
607 static const value_string charging_ase_Currency_vals
[] = {
608 { 0, "noIndication" },
609 { 1, "australianDollar" },
610 { 2, "austrianSchilling" },
611 { 3, "belgianFranc" },
612 { 4, "britishPound" },
613 { 5, "czechKoruna" },
614 { 6, "danishKrone" },
615 { 7, "dutchGuilder" },
617 { 9, "finnishMarkka" },
618 { 10, "frenchFranc" },
619 { 11, "germanMark" },
620 { 12, "greekDrachma" },
621 { 13, "hungarianForint" },
623 { 15, "italianLira" },
624 { 16, "japaneseYen" },
625 { 17, "luxembourgian-Franc" },
626 { 18, "norwegianKrone" },
627 { 19, "polishZloty" },
628 { 20, "portugeseEscudo" },
629 { 21, "russianRouble" },
630 { 22, "slovakKoruna" },
631 { 23, "spanishPeseta" },
632 { 24, "swedishKrone" },
633 { 25, "swissFranc" },
634 { 26, "turkishLira" },
641 dissect_charging_ase_Currency(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
642 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
649 static const ber_sequence_t ChargingTariffInformation_sequence
[] = {
650 { &hf_charging_ase_chargingControlIndicators
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingControlIndicators
},
651 { &hf_charging_ase_chargingTariff
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_chargingTariff
},
652 { &hf_charging_ase_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
653 { &hf_charging_ase_originationIdentification
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
654 { &hf_charging_ase_destinationIdentification
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
655 { &hf_charging_ase_currency
, BER_CLASS_CON
, 5, BER_FLAGS_IMPLTAG
, dissect_charging_ase_Currency
},
656 { NULL
, 0, 0, 0, NULL
}
660 dissect_charging_ase_ChargingTariffInformation(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
661 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
662 ChargingTariffInformation_sequence
, hf_index
, ett_charging_ase_ChargingTariffInformation
);
668 static const value_string charging_ase_T_addOncharge_vals
[] = {
669 { 0, "addOnChargeCurrency" },
670 { 1, "addOnChargePulse" },
674 static const ber_choice_t T_addOncharge_choice
[] = {
675 { 0, &hf_charging_ase_addOnChargeCurrency
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_CurrencyFactorScale
},
676 { 1, &hf_charging_ase_addOnChargePulse
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_PulseUnits
},
677 { 0, NULL
, 0, 0, 0, NULL
}
681 dissect_charging_ase_T_addOncharge(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
682 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
683 T_addOncharge_choice
, hf_index
, ett_charging_ase_T_addOncharge
,
690 static const ber_sequence_t AddOnChargingInformation_sequence
[] = {
691 { &hf_charging_ase_chargingControlIndicators
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingControlIndicators
},
692 { &hf_charging_ase_addOncharge
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_addOncharge
},
693 { &hf_charging_ase_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
694 { &hf_charging_ase_originationIdentification
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
695 { &hf_charging_ase_destinationIdentification
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
696 { &hf_charging_ase_currency
, BER_CLASS_CON
, 5, BER_FLAGS_IMPLTAG
, dissect_charging_ase_Currency
},
697 { NULL
, 0, 0, 0, NULL
}
701 dissect_charging_ase_AddOnChargingInformation(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
702 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
703 AddOnChargingInformation_sequence
, hf_index
, ett_charging_ase_AddOnChargingInformation
);
709 static const asn_namedbit T_acknowledgementIndicators_bits
[] = {
710 { 0, &hf_charging_ase_T_acknowledgementIndicators_accepted
, -1, -1, "accepted", NULL
},
711 { 0, NULL
, 0, 0, NULL
, NULL
}
715 dissect_charging_ase_T_acknowledgementIndicators(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
716 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
717 T_acknowledgementIndicators_bits
, hf_index
, ett_charging_ase_T_acknowledgementIndicators
,
724 static const ber_sequence_t ChargingAcknowledgementInformation_sequence
[] = {
725 { &hf_charging_ase_acknowledgementIndicators
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_acknowledgementIndicators
},
726 { &hf_charging_ase_extensions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
727 { &hf_charging_ase_originationIdentification
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
728 { &hf_charging_ase_destinationIdentification
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
729 { NULL
, 0, 0, 0, NULL
}
733 dissect_charging_ase_ChargingAcknowledgementInformation(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
734 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
735 ChargingAcknowledgementInformation_sequence
, hf_index
, ett_charging_ase_ChargingAcknowledgementInformation
);
741 static const ber_sequence_t SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification_sequence_of
[1] = {
742 { &hf_charging_ase_networkOperators_item
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_charging_ase_NetworkIdentification
},
746 dissect_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
747 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
748 SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification_sequence_of
, hf_index
, ett_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification
);
754 static const ber_sequence_t StartCharging_sequence
[] = {
755 { &hf_charging_ase_networkOperators
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification
},
756 { &hf_charging_ase_extensions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
757 { &hf_charging_ase_originationIdentification
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
758 { NULL
, 0, 0, 0, NULL
}
762 dissect_charging_ase_StartCharging(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
763 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
764 StartCharging_sequence
, hf_index
, ett_charging_ase_StartCharging
);
770 static const asn_namedbit T_stopIndicators_bits
[] = {
771 { 0, &hf_charging_ase_T_stopIndicators_callAttemptChargesApplicable
, -1, -1, "callAttemptChargesApplicable", NULL
},
772 { 0, NULL
, 0, 0, NULL
, NULL
}
776 dissect_charging_ase_T_stopIndicators(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
777 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
778 T_stopIndicators_bits
, hf_index
, ett_charging_ase_T_stopIndicators
,
785 static const ber_sequence_t StopCharging_sequence
[] = {
786 { &hf_charging_ase_stopIndicators
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_T_stopIndicators
},
787 { &hf_charging_ase_networkOperators
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification
},
788 { &hf_charging_ase_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
789 { &hf_charging_ase_originationIdentification
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingReferenceIdentification
},
790 { NULL
, 0, 0, 0, NULL
}
794 dissect_charging_ase_StopCharging(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
795 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
796 StopCharging_sequence
, hf_index
, ett_charging_ase_StopCharging
);
802 const value_string charging_ase_ChargingMessageType_vals
[] = {
811 static const ber_choice_t ChargingMessageType_choice
[] = {
812 { 0, &hf_charging_ase_crgt
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingTariffInformation
},
813 { 1, &hf_charging_ase_aocrg
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_charging_ase_AddOnChargingInformation
},
814 { 2, &hf_charging_ase_crga
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_charging_ase_ChargingAcknowledgementInformation
},
815 { 3, &hf_charging_ase_start
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_charging_ase_StartCharging
},
816 { 4, &hf_charging_ase_stop
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_charging_ase_StopCharging
},
817 { 0, NULL
, 0, 0, 0, NULL
}
821 dissect_charging_ase_ChargingMessageType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
822 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
823 ChargingMessageType_choice
, hf_index
, ett_charging_ase_ChargingMessageType
,
831 int dissect_charging_ase_ChargingMessageType_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
834 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
835 offset
= dissect_charging_ase_ChargingMessageType(FALSE
, tvb
, offset
, &asn1_ctx
, tree
, hf_charging_ase_charging_ase_ChargingMessageType_PDU
);
840 /*--- End of included file: packet-charging_ase-fn.c ---*/
841 #line 50 "../../asn1/charging_ase/packet-charging_ase-template.c"
844 dissect_charging_ase(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
849 it
=proto_tree_add_protocol_format(tree
, proto_charging_ase
, tvb
, 0, tvb_length(tvb
), "Charging ASE");
850 tr
=proto_item_add_subtree(it
, ett_charging_ase
);
852 if(tvb_length(tvb
)>0)
854 dissect_charging_ase_ChargingMessageType_PDU(tvb
, pinfo
, tr
, NULL
);
858 /* Register all the bits needed with the filtering engine */
860 proto_register_charging_ase(void)
863 static hf_register_info hf
[] = {
865 /*--- Included file: packet-charging_ase-hfarr.c ---*/
866 #line 1 "../../asn1/charging_ase/packet-charging_ase-hfarr.c"
867 { &hf_charging_ase_charging_ase_ChargingMessageType_PDU
,
868 { "ChargingMessageType", "charging_ase.ChargingMessageType",
869 FT_UINT32
, BASE_DEC
, VALS(charging_ase_ChargingMessageType_vals
), 0,
871 { &hf_charging_ase_crgt
,
872 { "crgt", "charging_ase.crgt_element",
873 FT_NONE
, BASE_NONE
, NULL
, 0,
874 "ChargingTariffInformation", HFILL
}},
875 { &hf_charging_ase_aocrg
,
876 { "aocrg", "charging_ase.aocrg_element",
877 FT_NONE
, BASE_NONE
, NULL
, 0,
878 "AddOnChargingInformation", HFILL
}},
879 { &hf_charging_ase_crga
,
880 { "crga", "charging_ase.crga_element",
881 FT_NONE
, BASE_NONE
, NULL
, 0,
882 "ChargingAcknowledgementInformation", HFILL
}},
883 { &hf_charging_ase_start
,
884 { "start", "charging_ase.start_element",
885 FT_NONE
, BASE_NONE
, NULL
, 0,
886 "StartCharging", HFILL
}},
887 { &hf_charging_ase_stop
,
888 { "stop", "charging_ase.stop_element",
889 FT_NONE
, BASE_NONE
, NULL
, 0,
890 "StopCharging", HFILL
}},
891 { &hf_charging_ase_acknowledgementIndicators
,
892 { "acknowledgementIndicators", "charging_ase.acknowledgementIndicators",
893 FT_BYTES
, BASE_NONE
, NULL
, 0,
895 { &hf_charging_ase_extensions
,
896 { "extensions", "charging_ase.extensions",
897 FT_UINT32
, BASE_DEC
, NULL
, 0,
898 "SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField", HFILL
}},
899 { &hf_charging_ase_extensions_item
,
900 { "ExtensionField", "charging_ase.ExtensionField_element",
901 FT_NONE
, BASE_NONE
, NULL
, 0,
903 { &hf_charging_ase_originationIdentification
,
904 { "originationIdentification", "charging_ase.originationIdentification_element",
905 FT_NONE
, BASE_NONE
, NULL
, 0,
906 "ChargingReferenceIdentification", HFILL
}},
907 { &hf_charging_ase_destinationIdentification
,
908 { "destinationIdentification", "charging_ase.destinationIdentification_element",
909 FT_NONE
, BASE_NONE
, NULL
, 0,
910 "ChargingReferenceIdentification", HFILL
}},
911 { &hf_charging_ase_chargingControlIndicators
,
912 { "chargingControlIndicators", "charging_ase.chargingControlIndicators",
913 FT_BYTES
, BASE_NONE
, NULL
, 0,
915 { &hf_charging_ase_addOncharge
,
916 { "addOncharge", "charging_ase.addOncharge",
917 FT_UINT32
, BASE_DEC
, VALS(charging_ase_T_addOncharge_vals
), 0,
919 { &hf_charging_ase_addOnChargeCurrency
,
920 { "addOnChargeCurrency", "charging_ase.addOnChargeCurrency_element",
921 FT_NONE
, BASE_NONE
, NULL
, 0,
922 "CurrencyFactorScale", HFILL
}},
923 { &hf_charging_ase_addOnChargePulse
,
924 { "addOnChargePulse", "charging_ase.addOnChargePulse",
925 FT_BYTES
, BASE_NONE
, NULL
, 0,
926 "PulseUnits", HFILL
}},
927 { &hf_charging_ase_currency
,
928 { "currency", "charging_ase.currency",
929 FT_UINT32
, BASE_DEC
, VALS(charging_ase_Currency_vals
), 0,
931 { &hf_charging_ase_chargingTariff
,
932 { "chargingTariff", "charging_ase.chargingTariff",
933 FT_UINT32
, BASE_DEC
, VALS(charging_ase_T_chargingTariff_vals
), 0,
935 { &hf_charging_ase_tariffCurrency
,
936 { "tariffCurrency", "charging_ase.tariffCurrency_element",
937 FT_NONE
, BASE_NONE
, NULL
, 0,
939 { &hf_charging_ase_tariffPulse
,
940 { "tariffPulse", "charging_ase.tariffPulse_element",
941 FT_NONE
, BASE_NONE
, NULL
, 0,
943 { &hf_charging_ase_local
,
944 { "local", "charging_ase.local",
945 FT_INT32
, BASE_DEC
, NULL
, 0,
947 { &hf_charging_ase_global
,
948 { "global", "charging_ase.global",
949 FT_OID
, BASE_NONE
, NULL
, 0,
950 "OBJECT_IDENTIFIER", HFILL
}},
951 { &hf_charging_ase_currencyFactorScale
,
952 { "currencyFactorScale", "charging_ase.currencyFactorScale_element",
953 FT_NONE
, BASE_NONE
, NULL
, 0,
955 { &hf_charging_ase_tariffDuration
,
956 { "tariffDuration", "charging_ase.tariffDuration",
957 FT_UINT32
, BASE_DEC
, NULL
, 0,
959 { &hf_charging_ase_subTariffControl
,
960 { "subTariffControl", "charging_ase.subTariffControl",
961 FT_BYTES
, BASE_NONE
, NULL
, 0,
963 { &hf_charging_ase_pulseUnits
,
964 { "pulseUnits", "charging_ase.pulseUnits",
965 FT_BYTES
, BASE_NONE
, NULL
, 0,
967 { &hf_charging_ase_chargeUnitTimeInterval
,
968 { "chargeUnitTimeInterval", "charging_ase.chargeUnitTimeInterval",
969 FT_BYTES
, BASE_NONE
, NULL
, 0,
971 { &hf_charging_ase_currencyFactor
,
972 { "currencyFactor", "charging_ase.currencyFactor",
973 FT_UINT32
, BASE_DEC
, NULL
, 0,
975 { &hf_charging_ase_currencyScale
,
976 { "currencyScale", "charging_ase.currencyScale",
977 FT_INT32
, BASE_DEC
, NULL
, 0,
979 { &hf_charging_ase_type
,
980 { "type", "charging_ase.type",
981 FT_UINT32
, BASE_DEC
, VALS(charging_ase_Code_vals
), 0,
983 { &hf_charging_ase_criticality
,
984 { "criticality", "charging_ase.criticality",
985 FT_UINT32
, BASE_DEC
, VALS(charging_ase_CriticalityType_vals
), 0,
986 "CriticalityType", HFILL
}},
987 { &hf_charging_ase_value
,
988 { "value", "charging_ase.value_element",
989 FT_NONE
, BASE_NONE
, NULL
, 0,
991 { &hf_charging_ase_networkOperators
,
992 { "networkOperators", "charging_ase.networkOperators",
993 FT_UINT32
, BASE_DEC
, NULL
, 0,
994 "SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification", HFILL
}},
995 { &hf_charging_ase_networkOperators_item
,
996 { "NetworkIdentification", "charging_ase.NetworkIdentification",
997 FT_OID
, BASE_NONE
, NULL
, 0,
999 { &hf_charging_ase_stopIndicators
,
1000 { "stopIndicators", "charging_ase.stopIndicators",
1001 FT_BYTES
, BASE_NONE
, NULL
, 0,
1003 { &hf_charging_ase_currentTariffCurrency
,
1004 { "currentTariffCurrency", "charging_ase.currentTariffCurrency_element",
1005 FT_NONE
, BASE_NONE
, NULL
, 0,
1006 "TariffCurrencyFormat", HFILL
}},
1007 { &hf_charging_ase_tariffSwitchCurrency
,
1008 { "tariffSwitchCurrency", "charging_ase.tariffSwitchCurrency_element",
1009 FT_NONE
, BASE_NONE
, NULL
, 0,
1011 { &hf_charging_ase_nextTariffCurrency
,
1012 { "nextTariffCurrency", "charging_ase.nextTariffCurrency_element",
1013 FT_NONE
, BASE_NONE
, NULL
, 0,
1014 "TariffCurrencyFormat", HFILL
}},
1015 { &hf_charging_ase_tariffSwitchoverTime
,
1016 { "tariffSwitchoverTime", "charging_ase.tariffSwitchoverTime",
1017 FT_BYTES
, BASE_NONE
, NULL
, 0,
1019 { &hf_charging_ase_communicationChargeSequenceCurrency
,
1020 { "communicationChargeSequenceCurrency", "charging_ase.communicationChargeSequenceCurrency",
1021 FT_UINT32
, BASE_DEC
, NULL
, 0,
1022 "SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency", HFILL
}},
1023 { &hf_charging_ase_communicationChargeSequenceCurrency_item
,
1024 { "CommunicationChargeCurrency", "charging_ase.CommunicationChargeCurrency_element",
1025 FT_NONE
, BASE_NONE
, NULL
, 0,
1027 { &hf_charging_ase_tariffControlIndicators
,
1028 { "tariffControlIndicators", "charging_ase.tariffControlIndicators",
1029 FT_BYTES
, BASE_NONE
, NULL
, 0,
1031 { &hf_charging_ase_callAttemptChargeCurrency
,
1032 { "callAttemptChargeCurrency", "charging_ase.callAttemptChargeCurrency_element",
1033 FT_NONE
, BASE_NONE
, NULL
, 0,
1034 "CurrencyFactorScale", HFILL
}},
1035 { &hf_charging_ase_callSetupChargeCurrency
,
1036 { "callSetupChargeCurrency", "charging_ase.callSetupChargeCurrency_element",
1037 FT_NONE
, BASE_NONE
, NULL
, 0,
1038 "CurrencyFactorScale", HFILL
}},
1039 { &hf_charging_ase_currentTariffPulse
,
1040 { "currentTariffPulse", "charging_ase.currentTariffPulse_element",
1041 FT_NONE
, BASE_NONE
, NULL
, 0,
1042 "TariffPulseFormat", HFILL
}},
1043 { &hf_charging_ase_tariffSwitchPulse
,
1044 { "tariffSwitchPulse", "charging_ase.tariffSwitchPulse_element",
1045 FT_NONE
, BASE_NONE
, NULL
, 0,
1047 { &hf_charging_ase_nextTariffPulse
,
1048 { "nextTariffPulse", "charging_ase.nextTariffPulse_element",
1049 FT_NONE
, BASE_NONE
, NULL
, 0,
1050 "TariffPulseFormat", HFILL
}},
1051 { &hf_charging_ase_communicationChargeSequencePulse
,
1052 { "communicationChargeSequencePulse", "charging_ase.communicationChargeSequencePulse",
1053 FT_UINT32
, BASE_DEC
, NULL
, 0,
1054 "SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse", HFILL
}},
1055 { &hf_charging_ase_communicationChargeSequencePulse_item
,
1056 { "CommunicationChargePulse", "charging_ase.CommunicationChargePulse_element",
1057 FT_NONE
, BASE_NONE
, NULL
, 0,
1059 { &hf_charging_ase_tariffControlIndicators_01
,
1060 { "tariffControlIndicators", "charging_ase.tariffControlIndicators",
1061 FT_BYTES
, BASE_NONE
, NULL
, 0,
1062 "T_tariffControlIndicators_01", HFILL
}},
1063 { &hf_charging_ase_callAttemptChargePulse
,
1064 { "callAttemptChargePulse", "charging_ase.callAttemptChargePulse",
1065 FT_BYTES
, BASE_NONE
, NULL
, 0,
1066 "PulseUnits", HFILL
}},
1067 { &hf_charging_ase_callSetupChargePulse
,
1068 { "callSetupChargePulse", "charging_ase.callSetupChargePulse",
1069 FT_BYTES
, BASE_NONE
, NULL
, 0,
1070 "PulseUnits", HFILL
}},
1071 { &hf_charging_ase_networkIdentification
,
1072 { "networkIdentification", "charging_ase.networkIdentification",
1073 FT_OID
, BASE_NONE
, NULL
, 0,
1075 { &hf_charging_ase_referenceID
,
1076 { "referenceID", "charging_ase.referenceID",
1077 FT_UINT32
, BASE_DEC
, NULL
, 0,
1079 { &hf_charging_ase_T_acknowledgementIndicators_accepted
,
1080 { "accepted", "charging_ase.accepted",
1081 FT_BOOLEAN
, 8, NULL
, 0x80,
1083 { &hf_charging_ase_ChargingControlIndicators_subscriberCharge
,
1084 { "subscriberCharge", "charging_ase.subscriberCharge",
1085 FT_BOOLEAN
, 8, NULL
, 0x80,
1087 { &hf_charging_ase_ChargingControlIndicators_immediateChangeOfActuallyAppliedTariff
,
1088 { "immediateChangeOfActuallyAppliedTariff", "charging_ase.immediateChangeOfActuallyAppliedTariff",
1089 FT_BOOLEAN
, 8, NULL
, 0x40,
1091 { &hf_charging_ase_ChargingControlIndicators_delayUntilStart
,
1092 { "delayUntilStart", "charging_ase.delayUntilStart",
1093 FT_BOOLEAN
, 8, NULL
, 0x20,
1095 { &hf_charging_ase_T_stopIndicators_callAttemptChargesApplicable
,
1096 { "callAttemptChargesApplicable", "charging_ase.callAttemptChargesApplicable",
1097 FT_BOOLEAN
, 8, NULL
, 0x80,
1099 { &hf_charging_ase_SubTariffControl_oneTimeCharge
,
1100 { "oneTimeCharge", "charging_ase.oneTimeCharge",
1101 FT_BOOLEAN
, 8, NULL
, 0x80,
1103 { &hf_charging_ase_T_tariffControlIndicators_non_cyclicTariff
,
1104 { "non-cyclicTariff", "charging_ase.non-cyclicTariff",
1105 FT_BOOLEAN
, 8, NULL
, 0x80,
1107 { &hf_charging_ase_T_tariffControlIndicators_01_non_cyclicTariff
,
1108 { "non-cyclicTariff", "charging_ase.non-cyclicTariff",
1109 FT_BOOLEAN
, 8, NULL
, 0x80,
1112 /*--- End of included file: packet-charging_ase-hfarr.c ---*/
1113 #line 73 "../../asn1/charging_ase/packet-charging_ase-template.c"
1116 /* List of subtrees */
1117 static gint
*ett
[] = {
1120 /*--- Included file: packet-charging_ase-ettarr.c ---*/
1121 #line 1 "../../asn1/charging_ase/packet-charging_ase-ettarr.c"
1122 &ett_charging_ase_ChargingMessageType
,
1123 &ett_charging_ase_ChargingAcknowledgementInformation
,
1124 &ett_charging_ase_T_acknowledgementIndicators
,
1125 &ett_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
,
1126 &ett_charging_ase_ChargingControlIndicators
,
1127 &ett_charging_ase_AddOnChargingInformation
,
1128 &ett_charging_ase_T_addOncharge
,
1129 &ett_charging_ase_ChargingTariffInformation
,
1130 &ett_charging_ase_T_chargingTariff
,
1131 &ett_charging_ase_Code
,
1132 &ett_charging_ase_CommunicationChargeCurrency
,
1133 &ett_charging_ase_CommunicationChargePulse
,
1134 &ett_charging_ase_CurrencyFactorScale
,
1135 &ett_charging_ase_ExtensionField
,
1136 &ett_charging_ase_StartCharging
,
1137 &ett_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification
,
1138 &ett_charging_ase_StopCharging
,
1139 &ett_charging_ase_T_stopIndicators
,
1140 &ett_charging_ase_SubTariffControl
,
1141 &ett_charging_ase_TariffCurrency
,
1142 &ett_charging_ase_TariffSwitchCurrency
,
1143 &ett_charging_ase_TariffCurrencyFormat
,
1144 &ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency
,
1145 &ett_charging_ase_T_tariffControlIndicators
,
1146 &ett_charging_ase_TariffPulse
,
1147 &ett_charging_ase_TariffSwitchPulse
,
1148 &ett_charging_ase_TariffPulseFormat
,
1149 &ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse
,
1150 &ett_charging_ase_T_tariffControlIndicators_01
,
1151 &ett_charging_ase_ChargingReferenceIdentification
,
1153 /*--- End of included file: packet-charging_ase-ettarr.c ---*/
1154 #line 79 "../../asn1/charging_ase/packet-charging_ase-template.c"
1157 proto_charging_ase
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
1159 proto_register_field_array(proto_charging_ase
, hf
, array_length(hf
));
1160 proto_register_subtree_array(ett
, array_length(ett
));
1163 /* The registration hand-off routine */
1165 proto_reg_handoff_charging_ase(void)
1167 charging_ase_handle
= create_dissector_handle(dissect_charging_ase
, proto_charging_ase
);