diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-04-14 09:20:02 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-04-14 09:20:02 +0000 |
commit | a5863ec066cc91e790bf839b3eb40eff451d80fd (patch) | |
tree | 28ede68419d93132a07eb5544433ddee5c1e773b /epan/dissectors/packet-bacnet.c | |
parent | 1d2c39cc60232a54f6fe906ab2b2a4b4d1175fda (diff) |
From Steve Karg
updates to BACNet
svn path=/trunk/; revision=14075
Diffstat (limited to 'epan/dissectors/packet-bacnet.c')
-rw-r--r-- | epan/dissectors/packet-bacnet.c | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/epan/dissectors/packet-bacnet.c b/epan/dissectors/packet-bacnet.c index 46053b7e5a..111faace52 100644 --- a/epan/dissectors/packet-bacnet.c +++ b/epan/dissectors/packet-bacnet.c @@ -1,6 +1,7 @@ /* packet-bacnet.c * Routines for BACnet (NPDU) dissection * Copyright 2001, Hartmut Mueller <hartmut@abmlinux.org>, FH Dortmund + * Enhanced by Steve Karg, 2005, <skarg@users.sourceforge.net> * * $Id$ * @@ -148,10 +149,12 @@ static int hf_bacnet_control_prio_low = -1; static int hf_bacnet_dnet = -1; static int hf_bacnet_dlen = -1; static int hf_bacnet_dadr_eth = -1; +static int hf_bacnet_dadr_mstp = -1; static int hf_bacnet_dadr_tmp = -1; static int hf_bacnet_snet = -1; static int hf_bacnet_slen = -1; static int hf_bacnet_sadr_eth = -1; +static int hf_bacnet_sadr_mstp = -1; static int hf_bacnet_sadr_tmp = -1; static int hf_bacnet_hopc = -1; static int hf_bacnet_mesgtyp = -1; @@ -258,6 +261,15 @@ dissect_bacnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) hf_bacnet_dadr_eth, tvb, offset, bacnet_dlen, FALSE); offset += bacnet_dlen; + } else if (bacnet_dlen==1) { + proto_tree_add_uint(bacnet_tree, hf_bacnet_dlen, + tvb, offset, 1, bacnet_dlen); + offset ++; + /* MS/TP or ARCNET MAC */ + proto_tree_add_item(bacnet_tree, + hf_bacnet_dadr_mstp, tvb, offset, + bacnet_dlen, FALSE); + offset += bacnet_dlen; } else if (bacnet_dlen<7) { proto_tree_add_uint(bacnet_tree, hf_bacnet_dlen, tvb, offset, 1, bacnet_dlen); @@ -296,7 +308,17 @@ dissect_bacnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) hf_bacnet_sadr_eth, tvb, offset, bacnet_slen, FALSE); offset += bacnet_slen; - } else if (bacnet_slen<6) { /* LON,ARCNET,MS/TP MAC */ + } else if (bacnet_slen==1) { + /* SLEN */ + proto_tree_add_uint(bacnet_tree, hf_bacnet_slen, + tvb, offset, 1, bacnet_slen); + offset ++; + /* MS/TP or ARCNET MAC */ + proto_tree_add_item(bacnet_tree, + hf_bacnet_sadr_mstp, tvb, offset, + bacnet_slen, FALSE); + offset += bacnet_slen; + } else if (bacnet_slen<6) { /* LON MAC */ /* SLEN */ proto_tree_add_uint(bacnet_tree, hf_bacnet_slen, tvb, offset, 1, bacnet_slen); @@ -480,7 +502,7 @@ proto_register_bacnet(void) }, { &hf_bacnet_dnet, { "Destination Network Address", "bacnet.dnet", - FT_UINT16, BASE_HEX, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0, "Destination Network Address", HFILL } }, { &hf_bacnet_dlen, @@ -493,6 +515,11 @@ proto_register_bacnet(void) FT_ETHER, BASE_HEX, NULL, 0, "Destination ISO 8802-3 MAC Address", HFILL } }, + { &hf_bacnet_dadr_mstp, + { "DADR", "bacnet.dadr_mstp", + FT_UINT8, BASE_DEC, NULL, 0, + "Destination MS/TP or ARCNET MAC Address", HFILL } + }, { &hf_bacnet_dadr_tmp, { "Unknown Destination MAC", "bacnet.dadr_tmp", FT_BYTES, BASE_HEX, NULL, 0, @@ -500,7 +527,7 @@ proto_register_bacnet(void) }, { &hf_bacnet_snet, { "Source Network Address", "bacnet.snet", - FT_UINT16, BASE_HEX, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0, "Source Network Address", HFILL } }, { &hf_bacnet_slen, @@ -513,6 +540,11 @@ proto_register_bacnet(void) FT_ETHER, BASE_HEX, NULL, 0, "Source ISO 8802-3 MAC Address", HFILL } }, + { &hf_bacnet_sadr_mstp, + { "SADR", "bacnet.sadr_mstp", + FT_UINT8, BASE_DEC, NULL, 0, + "Source MS/TP or ARCNET MAC Address", HFILL } + }, { &hf_bacnet_sadr_tmp, { "Unknown Source MAC", "bacnet.sadr_tmp", FT_BYTES, BASE_HEX, NULL, 0, @@ -530,7 +562,7 @@ proto_register_bacnet(void) }, { &hf_bacnet_vendor, { "Vendor ID", "bacnet.vendor", - FT_UINT16, BASE_HEX, NULL, 0, + FT_UINT16, BASE_DEC, NULL, 0, "Vendor ID", HFILL } }, { &hf_bacnet_perf, |