mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 10:04:12 +08:00
[NETFILTER]: TCP conntrack: improve dead connection detection
Don't count window updates as retransmissions. Signed-off-by: George Hansper <georgeh@anstat.com.au> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
parent
71cd83a8bd
commit
c1fe3ca510
@ -49,6 +49,7 @@ struct ip_ct_tcp
|
||||
u_int32_t last_seq; /* Last sequence number seen in dir */
|
||||
u_int32_t last_ack; /* Last sequence number seen in opposite dir */
|
||||
u_int32_t last_end; /* Last seq + len */
|
||||
u_int16_t last_win; /* Last window advertisement seen in dir */
|
||||
};
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
@ -731,13 +731,15 @@ static int tcp_in_window(struct ip_ct_tcp *state,
|
||||
if (state->last_dir == dir
|
||||
&& state->last_seq == seq
|
||||
&& state->last_ack == ack
|
||||
&& state->last_end == end)
|
||||
&& state->last_end == end
|
||||
&& state->last_win == win)
|
||||
state->retrans++;
|
||||
else {
|
||||
state->last_dir = dir;
|
||||
state->last_seq = seq;
|
||||
state->last_ack = ack;
|
||||
state->last_end = end;
|
||||
state->last_win = win;
|
||||
state->retrans = 0;
|
||||
}
|
||||
}
|
||||
|
@ -688,13 +688,15 @@ static int tcp_in_window(struct ip_ct_tcp *state,
|
||||
if (state->last_dir == dir
|
||||
&& state->last_seq == seq
|
||||
&& state->last_ack == ack
|
||||
&& state->last_end == end)
|
||||
&& state->last_end == end
|
||||
&& state->last_win == win)
|
||||
state->retrans++;
|
||||
else {
|
||||
state->last_dir = dir;
|
||||
state->last_seq = seq;
|
||||
state->last_ack = ack;
|
||||
state->last_end = end;
|
||||
state->last_win = win;
|
||||
state->retrans = 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user