aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ieee802154.c
diff options
context:
space:
mode:
authorRobert Sauter <sauter@locoslab.com>2018-03-07 09:47:09 +0100
committerAnders Broman <a.broman58@gmail.com>2018-03-08 09:44:18 +0000
commite5de1f199499219b297d581d60546f2c5b51a87a (patch)
tree4d988f8ef6f086475fba6109dfff6d11e362f2fc /epan/dissectors/packet-ieee802154.c
parent3905c0d5d5532d10fa79b0481c9ce01e6752983d (diff)
wisun: Netricity segment control and reassembly support
While based on IEEE 802.15.4, the protocol breaks the standard by having frames where the FCF Security Enabled flag is set but no Auxiliary Security Header is present. Add handling of this special case to the IEEE 802.15.4 dissector. Change-Id: I0e678d5fc999ead740c0c27f51a699559c6cb21a Reviewed-on: https://code.wireshark.org/review/26336 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-ieee802154.c')
-rw-r--r--epan/dissectors/packet-ieee802154.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/epan/dissectors/packet-ieee802154.c b/epan/dissectors/packet-ieee802154.c
index e48aac8dc6..e70f425803 100644
--- a/epan/dissectors/packet-ieee802154.c
+++ b/epan/dissectors/packet-ieee802154.c
@@ -1351,7 +1351,7 @@ dissect_ieee802154_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
{
proto_tree *ieee802154_tree;
ieee802154_packet *packet;
- guint mhr_len = ieee802154_dissect_header(tvb, pinfo, tree, &ieee802154_tree, &packet);
+ guint mhr_len = ieee802154_dissect_header(tvb, pinfo, tree, 0, &ieee802154_tree, &packet);
if (!mhr_len || tvb_reported_length_remaining(tvb, mhr_len+IEEE802154_FCS_LEN) < 0 ) {
return;
}
@@ -1380,7 +1380,7 @@ dissect_ieee802154_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
}
guint
-ieee802154_dissect_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_tree **created_header_tree, ieee802154_packet **parsed_info)
+ieee802154_dissect_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint options, proto_tree **created_header_tree, ieee802154_packet **parsed_info)
{
proto_tree *ieee802154_tree = NULL;
proto_item *proto_root = NULL;
@@ -1811,7 +1811,7 @@ ieee802154_dissect_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p
}
/* Existence of the Auxiliary Security Header is controlled by the Security Enabled Field */
- if ((packet->security_enable) && (packet->version != IEEE802154_VERSION_2003)) {
+ if ((packet->security_enable) && (packet->version != IEEE802154_VERSION_2003) && !(options & IEEE802154_DISSECT_HEADER_OPTION_NO_AUX_SEC_HDR)) {
dissect_ieee802154_aux_sec_header_and_key(tvb, pinfo, ieee802154_tree, packet, &offset);
}