aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2017-09-29 14:46:20 +0200
committerStig Bjørlykke <stig@bjorlykke.org>2017-09-29 12:53:31 +0000
commit6106196232d9640b233ac4b6c6faf81d39e37e52 (patch)
treef3e940d923a4cbe2f0890b4640ad00db7e0074df
parent4ef7894862769bfea39ea74ec16d42a150bc2545 (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>
-rw-r--r--epan/dissectors/packet-btle.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/epan/dissectors/packet-btle.c b/epan/dissectors/packet-btle.c
index ecf942b..7bd3d10 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