aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtacser.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-rtacser.c')
-rw-r--r--epan/dissectors/packet-rtacser.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rtacser.c b/epan/dissectors/packet-rtacser.c
index d58e152cae..4a704b2544 100644
--- a/epan/dissectors/packet-rtacser.c
+++ b/epan/dissectors/packet-rtacser.c
@@ -92,6 +92,7 @@ static dissector_handle_t selfm_handle;
static dissector_handle_t dnp3_handle;
static dissector_handle_t modbus_handle;
static dissector_handle_t synphasor_handle;
+static dissector_handle_t lg8979_handle;
#define RTACSER_HEADER_LEN 12
@@ -110,6 +111,7 @@ static dissector_handle_t synphasor_handle;
#define RTACSER_PAYLOAD_DNP3 2
#define RTACSER_PAYLOAD_MODBUS 3
#define RTACSER_PAYLOAD_SYNPHASOR 4
+#define RTACSER_PAYLOAD_LG8979 5
/* Event Types */
static const value_string rtacser_eventtype_vals[] = {
@@ -133,6 +135,7 @@ static const enum_val_t rtacser_payload_proto_type[] = {
{ "DNP3 ", "DNP3 ", RTACSER_PAYLOAD_DNP3 },
{ "MODBUS RTU", "MODBUS RTU", RTACSER_PAYLOAD_MODBUS },
{ "SYNPHASOR ", "SYNPHASOR ", RTACSER_PAYLOAD_SYNPHASOR },
+ { "L&G 8979 ", "L&G 8979 ", RTACSER_PAYLOAD_LG8979 },
{ NULL, NULL, 0 }
};
@@ -255,6 +258,10 @@ dissect_rtacser_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
payload_tvb = tvb_new_subset_remaining(tvb, RTACSER_HEADER_LEN);
call_dissector(synphasor_handle, payload_tvb, pinfo, tree);
break;
+ case RTACSER_PAYLOAD_LG8979:
+ payload_tvb = tvb_new_subset_remaining(tvb, RTACSER_HEADER_LEN);
+ call_dissector(lg8979_handle, payload_tvb, pinfo, tree);
+ break;
default:
break;
}
@@ -373,6 +380,7 @@ proto_reg_handoff_rtacser(void)
dnp3_handle = find_dissector("dnp3.udp");
modbus_handle = find_dissector("mbrtu");
synphasor_handle = find_dissector("synphasor");
+ lg8979_handle = find_dissector("lg8979");
dissector_add_uint("wtap_encap", WTAP_ENCAP_RTAC_SERIAL, rtacser_handle);
}