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 
af9dd51256b01fd31d9e390d69dcb1d1700daf1b..f0ee3a599755aff00a00236728b430c7883087ff
 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5739,6 +5739,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