From: Simon Baatz <[email protected]>

Since commit 9ca48d616ed7 ("tcp: do not accept packets beyond
window"), the path leading to SKB_DROP_REASON_TCP_OVERWINDOW in
tcp_data_queue() is probably dead. However, it can be reached now when
tcp_max_receive_window() is larger than tcp_receive_window(). In that
case, increment LINUX_MIB_BEYOND_WINDOW as done in tcp_sequence().

Signed-off-by: Simon Baatz <[email protected]>
---
 net/ipv4/tcp_input.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 
2e1b237608150c2e9c9baf73cf047ed0823ca555..e6b2f4be7723db14acf2ae528df17b6d106b9da9
 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5678,6 +5678,7 @@ static void tcp_data_queue(struct sock *sk, struct 
sk_buff *skb)
        if (!before(TCP_SKB_CB(skb)->seq,
                    tp->rcv_nxt + tcp_receive_window(tp))) {
                reason = SKB_DROP_REASON_TCP_OVERWINDOW;
+               NET_INC_STATS(sock_net(sk), LINUX_MIB_BEYOND_WINDOW);
                goto out_of_window;
        }
 

-- 
2.53.0



Reply via email to