From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: [PATCH v2 net-next 0/6] tcp: implement SACK compression Date: Thu, 17 May 2018 10:47:33 -0700 Message-ID: <20180517174739.192489-1-edumazet@google.com> Cc: netdev , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Neal Cardwell , Yuchung Cheng , Soheil Hassas Yeganeh , Eric Dumazet , Eric Dumazet To: "David S . Miller" Return-path: Received: from mail-pf0-f196.google.com ([209.85.192.196]:32776 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750825AbeEQRro (ORCPT ); Thu, 17 May 2018 13:47:44 -0400 Received: by mail-pf0-f196.google.com with SMTP id a20-v6so2453220pfo.0 for ; Thu, 17 May 2018 10:47:44 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: When TCP receives an out-of-order packet, it immediately sends a SACK packet, generating network load but also forcing the receiver to send 1-MSS pathological packets, increasing its RTX queue length/depth, and thus processing time. Wifi networks suffer from this aggressive behavior, but generally speaking, all these SACK packets add fuel to the fire when networks are under congestion. This patch series adds SACK compression, but the infrastructure could be leveraged to also compress ACK in the future. v2: Addressed Neal feedback. Added two sysctls to allow fine tuning, or even disabling the feature. Eric Dumazet (6): tcp: use __sock_put() instead of sock_put() in tcp_clear_xmit_timers() tcp: do not force quickack when receiving out-of-order packets tcp: add SACK compression tcp: add TCPAckCompressed SNMP counter tcp: add tcp_comp_sack_delay_ns sysctl tcp: add tcp_comp_sack_nr sysctl Documentation/networking/ip-sysctl.txt | 13 ++++++++++ include/linux/tcp.h | 2 ++ include/net/netns/ipv4.h | 2 ++ include/net/tcp.h | 5 +++- include/uapi/linux/snmp.h | 1 + net/ipv4/proc.c | 1 + net/ipv4/sysctl_net_ipv4.c | 17 +++++++++++++ net/ipv4/tcp.c | 1 + net/ipv4/tcp_input.c | 34 ++++++++++++++++++++------ net/ipv4/tcp_ipv4.c | 2 ++ net/ipv4/tcp_output.c | 9 +++++++ net/ipv4/tcp_timer.c | 25 +++++++++++++++++++ 12 files changed, 103 insertions(+), 9 deletions(-) -- 2.17.0.441.gb46fe60e1d-goog