diff options
Diffstat (limited to 'ui/tap-tcp-stream.h')
-rw-r--r-- | ui/tap-tcp-stream.h | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/ui/tap-tcp-stream.h b/ui/tap-tcp-stream.h index 360f4af016..a29e04dedc 100644 --- a/ui/tap-tcp-stream.h +++ b/ui/tap-tcp-stream.h @@ -103,16 +103,33 @@ int get_num_acks(struct tcp_graph *, int * ); struct tcpheader *select_tcpip_session(capture_file *, struct segment * ); /* This is used by rtt module only */ -struct unack { - struct unack *next; +struct rtt_unack { + struct rtt_unack *next; double time; unsigned int seqno; + unsigned int end_seqno; }; -int rtt_is_retrans(struct unack * , unsigned int ); -struct unack *rtt_get_new_unack(double , unsigned int ); -void rtt_put_unack_on_list(struct unack ** , struct unack * ); -void rtt_delete_unack_from_list(struct unack ** , struct unack * ); +int rtt_is_retrans(struct rtt_unack * , unsigned int ); +struct rtt_unack *rtt_get_new_unack(double , unsigned int , unsigned int ); +void rtt_put_unack_on_list(struct rtt_unack ** , struct rtt_unack * ); +void rtt_delete_unack_from_list(struct rtt_unack ** , struct rtt_unack * ); +void rtt_destroy_unack_list(struct rtt_unack ** ); + +static inline int +tcp_seq_before(guint32 s1, guint32 s2) { + return (gint32)(s1 - s2) < 0; +} + +static inline int +tcp_seq_eq_or_after(guint32 s1, guint32 s2) { + return !tcp_seq_before(s1, s2); +} + +static inline int +tcp_seq_after(guint32 s1, guint32 s2) { + return (s1 != s2) && !tcp_seq_before(s1, s2); +} static inline int tcp_seq_before(guint32 s1, guint32 s2) { |