aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-tcp.h
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2012-11-12 03:55:46 +0000
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2012-11-12 03:55:46 +0000
commit0aebd579e3be3595a1324bcd3bbe688e60cf5e46 (patch)
tree0dae3163baafaf55feee706b07e15d4812b46741 /epan/dissectors/packet-tcp.h
parent748f35f1e154c7c4bd26758f78e85b7e4b02e6ea (diff)
Show SACK information in TCP graphs. Also add a generated field for the
number of SACK ranges found in the SACK option. This involved extending the IP options framework to include an extra void* data field, which in the case of TCP is filled in with the tap struct - other users currently pass NULL. I first implemented the graph to sort the SACK ranges and show (in red) the unacknowledged regions between them, but this became confusing where the number of ranges is limited by TCP padding bytes. i.e. you can't tell how many SACKs could have been encoded, so some of the gaps between ranges may already have been received. svn path=/trunk/; revision=46006
Diffstat (limited to 'epan/dissectors/packet-tcp.h')
-rw-r--r--epan/dissectors/packet-tcp.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/epan/dissectors/packet-tcp.h b/epan/dissectors/packet-tcp.h
index 5e35abaddc..f2e7e92a91 100644
--- a/epan/dissectors/packet-tcp.h
+++ b/epan/dissectors/packet-tcp.h
@@ -62,6 +62,12 @@ typedef struct tcpheader {
guint32 th_stream; /* this stream index field is included to help differentiate when address/port pairs are reused */
address ip_src;
address ip_dst;
+
+ /* This is the absolute maximum we could find in TCP options (RFC2018, section 3) */
+ #define MAX_TCP_SACK_RANGES 4
+ guint8 num_sack_ranges;
+ guint32 sack_left_edge[MAX_TCP_SACK_RANGES];
+ guint32 sack_right_edge[MAX_TCP_SACK_RANGES];
} tcp_info_t;
/*