aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtacser.c
diff options
context:
space:
mode:
authorcbontje <cbontje@gmail.com>2014-03-11 15:46:27 -0600
committerAnders Broman <a.broman58@gmail.com>2014-03-19 05:07:34 +0000
commitfff998d6c1c7d38f3929eaa6e5101683c071744a (patch)
tree93491b6ba28cb6ca6364509a1ceebcda3e3b82c5 /epan/dissectors/packet-rtacser.c
parent04d950130624c14ac8af39c621f69851d8088ed6 (diff)
New Dissector for Landis & Gyr (Telegyr) 8979
Commit includes dissector code for lg8979 as well as additions to RTAC Serial code to call dissector when required. See bug report 9874 for further details and sample pcap files UPDATE1: L&G 8979 commit for addressing comments from Anders and Alexis and added Cmakelists.txt UPDATE2: address further comments from Alexis re. proto_item_set_text / proto_item_add_text entries. Also add modelines UPDATE3: fix compilation error noted by Alexis UPDATE4: address proto_tree_add_* comments from Michael Change-Id: I6e69d2b7b7e91e6efa12e4a5fb7dbd140c0540ed Reviewed-on: https://code.wireshark.org/review/610 Reviewed-by: Michael Mann <mmann78@netscape.net>
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);
}