On Sun, 2013-08-18 at 17:00 -0700, Eric Dumazet wrote: > Code like this seems very suspect to me : > > before(sack, receiver->td_end + 1) > My suggestion would be to try : diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c index 2f80107..1862902 100644 --- a/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c @@ -656,12 +656,12 @@ static bool tcp_in_window(const struct nf_conn *ct, pr_debug("tcp_in_window: I=%i II=%i III=%i IV=%i\n", before(seq, sender->td_maxend + 1), (in_recv_win ? 1 : 0), - before(sack, receiver->td_end + 1), + before(sack, receiver->td_end + MAXACKWINDOW(sender) + 1), after(sack, receiver->td_end - MAXACKWINDOW(sender) - 1)); if (before(seq, sender->td_maxend + 1) && in_recv_win && - before(sack, receiver->td_end + 1) && + before(sack, receiver->td_end + MAXACKWINDOW(sender) + 1) && after(sack, receiver->td_end - MAXACKWINDOW(sender) - 1)) { /* * Take into account window scaling (RFC 1323). -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html