diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-04-28 09:44:02 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-04-28 09:44:02 +0000 |
commit | 586cb50d01342c24330d563eb57a52407dc7287e (patch) | |
tree | 0e5208ed1349436eaf45cac131dc457704beb7b3 /epan/dissectors/packet-tcp.h | |
parent | 5f0df4eda2e679c846cf2bd8206fad7870b6d26e (diff) |
tcp analysis updates to prepare for later tcp reassembly updates
now that we have se_tree_lookup32_le we can do the tracking of pdu boundaries much more efficiently.
track pdu boundaries by a new tcp_multisegment_pdu structure that is indexed by sequence numbers and let this structure replace the older tcp_next_pdu structure.
with se_tree_lookup32_le we no longer need to track segment by segment and can get rid of the two hash tables
tcp_pdu_tracking_table
tcp_pdu_skipping_table
Neither do we need the tree tcp_pdu_time_table anymore so that one is gone as well.
remove various other functions that are no longer needed due to removing the structure and the tables/tree
this part of the code shoul;d be much more readable now and also a bit faster
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@18024 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-tcp.h')
-rw-r--r-- | epan/dissectors/packet-tcp.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/epan/dissectors/packet-tcp.h b/epan/dissectors/packet-tcp.h index 061d77c498..669b232e6e 100644 --- a/epan/dissectors/packet-tcp.h +++ b/epan/dissectors/packet-tcp.h @@ -107,8 +107,10 @@ struct tcp_acked { guint32 dupack_frame; /* dup ack to frame # */ }; -struct tcp_next_pdu { - struct tcp_next_pdu *next; +/* One instance of this structure is created for each pdu that spans across + * multiple tcp segments. + */ +struct tcp_multisegment_pdu { guint32 seq; guint32 nxtpdu; guint32 first_frame; @@ -137,10 +139,10 @@ typedef struct _tcp_flow_t { gint16 win_scale; /* -1 is we dont know */ guint32 lastsegmentflags; - /* this list is used to track when PDUs may start - inside a segment. - */ - struct tcp_next_pdu *pdu_seq; + /* This tree is indexed by sequence number and keeps track of all + * all pdus spanning multiple segments for this flow. + */ + se_tree_t *multisegment_pdus; } tcp_flow_t; |