Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1fe3ca5 authored by George Hansper's avatar George Hansper Committed by David S. Miller
Browse files

[NETFILTER]: TCP conntrack: improve dead connection detection



Don't count window updates as retransmissions.

Signed-off-by: default avatarGeorge Hansper <georgeh@anstat.com.au>
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
parent 71cd83a8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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__ */
+3 −1
Original line number Diff line number Diff line
@@ -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;
			}
		}
+3 −1
Original line number Diff line number Diff line
@@ -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;
			}
		}