Have ipmi "dissectors" register through the build process instead of "manually"
Change-Id: I6d6d32e8a1bc21dee9bf52b502e1a02e9511ecb2 Reviewed-on: https://code.wireshark.org/review/2253 Reviewed-by: Dmitry Bazhenov <dima_b@pigeonpoint.com> Reviewed-by: Evan Huus <eapache@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
cf99e6b198
commit
a279fa7705
|
@ -808,9 +808,19 @@ set(DISSECTOR_SRC
|
|||
dissectors/packet-ipars.c
|
||||
dissectors/packet-ipdc.c
|
||||
dissectors/packet-ipfc.c
|
||||
dissectors/packet-ipmi-session.c
|
||||
dissectors/packet-ipmi.c
|
||||
dissectors/packet-ipmi-app.c
|
||||
dissectors/packet-ipmi-bridge.c
|
||||
dissectors/packet-ipmi-chassis.c
|
||||
dissectors/packet-ipmi-picmg.c
|
||||
dissectors/packet-ipmi-se.c
|
||||
dissectors/packet-ipmi-session.c
|
||||
dissectors/packet-ipmi-storage.c
|
||||
dissectors/packet-ipmi-trace.c
|
||||
dissectors/packet-ipmi-transport.c
|
||||
dissectors/packet-ipmi-pps.c
|
||||
dissectors/packet-ipmi-update.c
|
||||
dissectors/packet-ipmi-vita.c
|
||||
dissectors/packet-ipnet.c
|
||||
dissectors/packet-ipoib.c
|
||||
dissectors/packet-ipp.c
|
||||
|
@ -1400,22 +1410,7 @@ set(DIRTY_DISSECTOR_SRC
|
|||
dissectors/packet-x11.c
|
||||
)
|
||||
|
||||
# IPMI sub-parsers for each network function code
|
||||
set(IPMI_SUBPARSERS
|
||||
dissectors/packet-ipmi-app.c
|
||||
dissectors/packet-ipmi-bridge.c
|
||||
dissectors/packet-ipmi-chassis.c
|
||||
dissectors/packet-ipmi-picmg.c
|
||||
dissectors/packet-ipmi-se.c
|
||||
dissectors/packet-ipmi-storage.c
|
||||
dissectors/packet-ipmi-transport.c
|
||||
dissectors/packet-ipmi-pps.c
|
||||
dissectors/packet-ipmi-update.c
|
||||
dissectors/packet-ipmi-vita.c
|
||||
)
|
||||
|
||||
set(DISSECTOR_SUPPORT_SRC
|
||||
${IPMI_SUBPARSERS}
|
||||
dissectors/packet-dcerpc-nt.c
|
||||
dissectors/usb.c
|
||||
register.c
|
||||
|
|
|
@ -728,9 +728,19 @@ DISSECTOR_SRC = \
|
|||
packet-ipars.c \
|
||||
packet-ipdc.c \
|
||||
packet-ipfc.c \
|
||||
packet-ipmi-session.c \
|
||||
packet-ipmi.c \
|
||||
packet-ipmi-app.c \
|
||||
packet-ipmi-bridge.c \
|
||||
packet-ipmi-chassis.c \
|
||||
packet-ipmi-picmg.c \
|
||||
packet-ipmi-se.c \
|
||||
packet-ipmi-session.c \
|
||||
packet-ipmi-storage.c \
|
||||
packet-ipmi-trace.c \
|
||||
packet-ipmi-transport.c \
|
||||
packet-ipmi-pps.c \
|
||||
packet-ipmi-update.c \
|
||||
packet-ipmi-vita.c \
|
||||
packet-ipnet.c \
|
||||
packet-ipoib.c \
|
||||
packet-ipp.c \
|
||||
|
@ -1705,24 +1715,10 @@ DISSECTOR_INCLUDES = \
|
|||
$(GENERATED_HEADER_FILES) \
|
||||
$(CUSTOM_HEADER_FILES)
|
||||
|
||||
# IPMI sub-parsers for each network function code
|
||||
IPMI_SUBPARSERS = \
|
||||
packet-ipmi-app.c \
|
||||
packet-ipmi-bridge.c \
|
||||
packet-ipmi-chassis.c \
|
||||
packet-ipmi-picmg.c \
|
||||
packet-ipmi-se.c \
|
||||
packet-ipmi-storage.c \
|
||||
packet-ipmi-transport.c \
|
||||
packet-ipmi-pps.c \
|
||||
packet-ipmi-update.c \
|
||||
packet-ipmi-vita.c
|
||||
|
||||
# Dissector helpers. They're included in the source files in this
|
||||
# directory, but they're not dissectors themselves, i.e. they're not
|
||||
# used to generate "register.c").
|
||||
DISSECTOR_SUPPORT_SRC = \
|
||||
$(IPMI_SUBPARSERS) \
|
||||
packet-dcerpc-nt.c \
|
||||
usb.c \
|
||||
register.c
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
|
||||
#include "packet-ipmi.h"
|
||||
|
||||
void proto_register_ipmi_app(void);
|
||||
|
||||
static gint ett_ipmi_app_01_byte2 = -1;
|
||||
static gint ett_ipmi_app_01_byte3 = -1;
|
||||
static gint ett_ipmi_app_01_byte6 = -1;
|
||||
|
@ -1045,7 +1047,7 @@ static ipmi_cmd_t cmd_app[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_app(gint proto_ipmi)
|
||||
proto_register_ipmi_app(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_ipmi_app_01_dev_id,
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include "packet-ipmi.h"
|
||||
|
||||
void proto_register_ipmi_bridge(void);
|
||||
|
||||
/* Bridge commands are not implemented (yet) */
|
||||
|
||||
|
||||
|
@ -134,7 +136,7 @@ static ipmi_cmd_t cmd_bridge[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_bridge(gint proto_ipmi _U_)
|
||||
proto_register_ipmi_bridge(void)
|
||||
{
|
||||
ipmi_register_netfn_cmdtab(IPMI_BRIDGE_REQ, IPMI_OEM_NONE, NULL, 0, NULL,
|
||||
cmd_bridge, array_length(cmd_bridge));
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include "packet-ipmi.h"
|
||||
|
||||
void proto_register_ipmi_chassis(void);
|
||||
|
||||
/* Local variables.
|
||||
*/
|
||||
static gint ett_ipmi_chs_bo00_byte1 = -1;
|
||||
|
@ -709,7 +711,7 @@ static ipmi_cmd_t cmd_chassis[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_chassis(gint proto_ipmi)
|
||||
proto_register_ipmi_chassis(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_ipmi_chs_bo00_sip,
|
||||
|
|
|
@ -2668,7 +2668,7 @@ static ipmi_cmd_t cmd_picmg[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_picmg(gint proto_ipmi)
|
||||
proto_register_ipmi_picmg(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_ipmi_picmg_led_function,
|
||||
|
|
|
@ -97,7 +97,7 @@ static ipmi_cmd_t cmd_pps[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_pps(gint proto_ipmi _U_)
|
||||
proto_register_ipmi_pps(void)
|
||||
{
|
||||
static guint8 sig_pps[3] = { 0x0a, 0x40, 0x00 };
|
||||
static guint8 sig_pps_rev[3] = { 0x00, 0x40, 0x0a };
|
||||
|
|
|
@ -2891,7 +2891,7 @@ static ipmi_cmd_t cmd_se[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_se(gint proto_ipmi)
|
||||
proto_register_ipmi_se(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_ipmi_se_evt_rev,
|
||||
|
|
|
@ -743,7 +743,7 @@ static ipmi_cmd_t cmd_storage[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_storage(gint proto_ipmi)
|
||||
proto_register_ipmi_storage(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_ipmi_stor_10_fruid,
|
||||
|
|
|
@ -2170,7 +2170,7 @@ static ipmi_cmd_t cmd_transport[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_transport(gint proto_ipmi)
|
||||
proto_register_ipmi_transport(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_ipmi_trn_lan00_sip,
|
||||
|
|
|
@ -38,7 +38,7 @@ static ipmi_cmd_t cmd_update[] = {
|
|||
};
|
||||
|
||||
void
|
||||
ipmi_register_update(gint proto_ipmi _U_)
|
||||
proto_register_ipmi_update(void)
|
||||
{
|
||||
ipmi_register_netfn_cmdtab(IPMI_UPDATE_REQ, IPMI_OEM_PPS, NULL, 0, NULL,
|
||||
cmd_update, array_length(cmd_update));
|
||||
|
|
|
@ -1298,7 +1298,7 @@ static ipmi_cmd_t cmd_vita[] = {
|
|||
/* VITA 46.11 command set registrator
|
||||
*/
|
||||
void
|
||||
ipmi_register_vita(gint proto_ipmi)
|
||||
proto_register_ipmi_vita(void)
|
||||
{
|
||||
static const guint8 sig_vita[1] = { 3 };
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ typedef struct {
|
|||
|
||||
static dissector_handle_t data_dissector;
|
||||
|
||||
static gint proto_ipmi = -1;
|
||||
gint proto_ipmi = -1;
|
||||
static gint proto_ipmb = -1;
|
||||
static gint proto_kcs = -1;
|
||||
static gint proto_tmode = -1;
|
||||
|
@ -1768,15 +1768,13 @@ proto_register_ipmi(void)
|
|||
{ "pps", "Pigeon Point Systems", IPMI_OEM_PPS },
|
||||
{ NULL, NULL, 0 }
|
||||
};
|
||||
#if 0
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_impi_parser_not_implemented, { "ipmi.parser_not_implemented", PI_UNDECODED, PI_WARN, "[PARSER NOT IMPLEMENTED]", EXPFILL }},
|
||||
};
|
||||
#endif
|
||||
|
||||
module_t *m;
|
||||
#if 0
|
||||
expert_module_t* expert_ipmi;
|
||||
#endif
|
||||
guint32 i;
|
||||
|
||||
proto_ipmi = proto_register_protocol("Intelligent Platform Management Interface",
|
||||
|
@ -1795,9 +1793,9 @@ proto_register_ipmi(void)
|
|||
|
||||
proto_register_field_array(proto_ipmi, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
#if 0
|
||||
|
||||
expert_ipmi = expert_register_protocol(proto_ipmi);
|
||||
#endif
|
||||
expert_register_field_array(expert_ipmi, ei, array_length(ei));
|
||||
|
||||
ipmi_netfn_setdesc(IPMI_CHASSIS_REQ, "Chassis", 0);
|
||||
ipmi_netfn_setdesc(IPMI_BRIDGE_REQ, "Bridge", 0);
|
||||
|
@ -1812,17 +1810,6 @@ proto_register_ipmi(void)
|
|||
ipmi_netfn_setdesc(i, "OEM", 0);
|
||||
}
|
||||
|
||||
ipmi_register_chassis(proto_ipmi);
|
||||
ipmi_register_bridge(proto_ipmi);
|
||||
ipmi_register_se(proto_ipmi);
|
||||
ipmi_register_app(proto_ipmi);
|
||||
ipmi_register_update(proto_ipmi);
|
||||
ipmi_register_storage(proto_ipmi);
|
||||
ipmi_register_transport(proto_ipmi);
|
||||
ipmi_register_picmg(proto_ipmi);
|
||||
ipmi_register_pps(proto_ipmi);
|
||||
ipmi_register_vita(proto_ipmi);
|
||||
|
||||
new_register_dissector("ipmi", dissect_ipmi, proto_ipmi);
|
||||
new_register_dissector("ipmb", dissect_ipmi, proto_ipmb);
|
||||
new_register_dissector("kcs", dissect_kcs, proto_kcs);
|
||||
|
|
|
@ -166,17 +166,8 @@ ipmi_netfn_t *ipmi_getnetfn(guint32 netfn, const guint8 *sig);
|
|||
ipmi_cmd_t *ipmi_getcmd(ipmi_netfn_t *nf, guint32 cmd);
|
||||
const char *ipmi_get_completion_code(guint8 completion, ipmi_cmd_t *cmd);
|
||||
|
||||
/* Sub-registrars (ipmi_*.c) */
|
||||
void ipmi_register_app(int proto);
|
||||
void ipmi_register_bridge(int proto);
|
||||
void ipmi_register_chassis(int proto);
|
||||
void ipmi_register_picmg(int proto);
|
||||
void ipmi_register_pps(int proto);
|
||||
void ipmi_register_se(int proto);
|
||||
void ipmi_register_storage(int proto);
|
||||
void ipmi_register_transport(int proto);
|
||||
void ipmi_register_update(int proto);
|
||||
void ipmi_register_vita(int proto);
|
||||
/* Used for sub-registrars (ipmi_*.c) */
|
||||
extern gint proto_ipmi;
|
||||
|
||||
/* Main dissection routine */
|
||||
#define IPMI_D_NONE 0x0001 /* Do not parse at all */
|
||||
|
|
Loading…
Reference in New Issue