1 /* packet-charging_ase-template.c
2 * Copyright 2009 , Anders Broman <anders.broman [AT] ericsson.com>
4 * Wireshark - Network traffic analyzer
5 * By Gerald Combs <gerald@wireshark.org>
6 * Copyright 1998 Gerald Combs
8 * SPDX-License-Identifier: GPL-2.0-or-later
9 * References: ETSI ES 201 296 V1.3.1 (2003-04)
14 #include <epan/packet.h>
15 #include <epan/expert.h>
16 #include <epan/asn1.h>
17 #include <wsutil/array.h>
18 #include "packet-ber.h"
19 #include "packet-charging_ase.h"
21 #define PNAME "Charging ASE"
22 #define PSNAME "ChargingASE"
23 #define PFNAME "chargingase"
25 void proto_register_charging_ase(void);
26 void proto_reg_handoff_charging_ase(void);
28 /* Define the Charging ASE proto */
29 static int proto_charging_ase
;
31 #include "packet-charging_ase-hf.c"
33 static int ett_charging_ase
;
34 #include "packet-charging_ase-ett.c"
36 static expert_field ei_charging_ase_extensions_not_dissected
;
38 static dissector_handle_t charging_ase_handle
;
40 #include "packet-charging_ase-fn.c"
43 dissect_charging_ase(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
48 it
=proto_tree_add_protocol_format(tree
, proto_charging_ase
, tvb
, 0, -1, "Charging ASE");
49 tr
=proto_item_add_subtree(it
, ett_charging_ase
);
51 if(tvb_reported_length(tvb
)>0)
53 dissect_charging_ase_ChargingMessageType_PDU(tvb
, pinfo
, tr
, NULL
);
55 return tvb_captured_length(tvb
);
58 /* Register all the bits needed with the filtering engine */
60 proto_register_charging_ase(void)
63 static hf_register_info hf
[] = {
64 #include "packet-charging_ase-hfarr.c"
67 /* List of subtrees */
70 #include "packet-charging_ase-ettarr.c"
73 static ei_register_info ei
[] = {
74 { &ei_charging_ase_extensions_not_dissected
, { "charging_ase.extensions_not_dissected", PI_UNDECODED
, PI_WARN
, "Extensions not dissected", EXPFILL
}},
77 expert_module_t
* expert_charging_ase
;
79 proto_charging_ase
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
81 proto_register_field_array(proto_charging_ase
, hf
, array_length(hf
));
82 proto_register_subtree_array(ett
, array_length(ett
));
83 expert_charging_ase
= expert_register_protocol(proto_charging_ase
);
84 expert_register_field_array(expert_charging_ase
, ei
, array_length(ei
));
85 charging_ase_handle
= register_dissector("charging_ase", dissect_charging_ase
, proto_charging_ase
);
88 /* The registration hand-off routine */
90 proto_reg_handoff_charging_ase(void)