diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2017-09-29 14:46:20 +0200 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2017-09-29 12:53:31 +0000 |
commit | 6106196232d9640b233ac4b6c6faf81d39e37e52 (patch) | |
tree | f3e940d923a4cbe2f0890b4640ad00db7e0074df /epan | |
parent | 4ef7894862769bfea39ea74ec16d42a150bc2545 (diff) |
btle: Don't ignore frames with incorrect CRC when detecting retransmission.
The retrans detection using SN must use all available frames to make a best
effort. The probability for having error in the SN bit is little compared
to reassembly errors occuring when discarding frames with incorrect CRC.
Change-Id: I40f89e69b19600939b6e0a85a2e655b6681ea5b2
Reviewed-on: https://code.wireshark.org/review/23783
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-btle.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/epan/dissectors/packet-btle.c b/epan/dissectors/packet-btle.c index ecf942bcef..7bd3d106a0 100644 --- a/epan/dissectors/packet-btle.c +++ b/epan/dissectors/packet-btle.c @@ -882,7 +882,7 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) wmem_tree = (wmem_tree_t *) wmem_tree_lookup32_array(connection_info_tree, key); if (wmem_tree) { connection_info = (connection_info_t *) wmem_tree_lookup32_le(wmem_tree, pinfo->num); - if (connection_info && crc_status != CRC_INCORRECT) { + if (connection_info) { gchar *str_addr_src, *str_addr_dst; gint tmp_dir = 0; /* Holds "unknown" + access_address + NULL, which is the longest string */ @@ -1002,7 +1002,7 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) tvbuff_t *new_tvb = NULL; pinfo->fragmented = TRUE; - if (connection_info && btle_frame_info->retransmit == 0 && crc_status != CRC_INCORRECT) { + if (connection_info && btle_frame_info->retransmit == 0) { if (!pinfo->fd->flags.visited) { if (connection_info->direction_info[direction].segmentation_started == 1) { if (connection_info->direction_info[direction].segment_len_rem >= length) { @@ -1092,7 +1092,7 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) guint le_frame_len = tvb_get_letohs(tvb, offset); if (le_frame_len > length) { pinfo->fragmented = TRUE; - if (connection_info && btle_frame_info->retransmit == 0 && crc_status != CRC_INCORRECT) { + if (connection_info && btle_frame_info->retransmit == 0) { if (!pinfo->fd->flags.visited) { connection_info->direction_info[direction].segmentation_started = 1; /* The first two octets in the L2CAP PDU contain the length of the entire |