diff options
author | Robert Sauter <sauter@locoslab.com> | 2018-03-07 09:47:09 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-03-08 09:44:18 +0000 |
commit | e5de1f199499219b297d581d60546f2c5b51a87a (patch) | |
tree | 4d988f8ef6f086475fba6109dfff6d11e362f2fc /epan/dissectors/packet-ieee802154.c | |
parent | 3905c0d5d5532d10fa79b0481c9ce01e6752983d (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.c | 6 |
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); } |