Merge branch 'tcp-implement-SACK-compression'
authorDavid S. Miller <davem@davemloft.net>
Fri, 18 May 2018 15:40:28 +0000 (11:40 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 May 2018 15:40:28 +0000 (11:40 -0400)
commit2c47a65b7009eb21f16f1d258b682ee38cff5186
treed2a2dfb4516b8fb0d8fe13e7c3bfa0eda2064d0d
parent64a2658b58ab519dc17aa3ec5754eedcbdb68bde
parent9c21d2fc41c0c8930600c9dd83eadac2e336fcfa
Merge branch 'tcp-implement-SACK-compression'

Eric Dumazet says:

====================
tcp: implement SACK compression

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.

v3: take rtt = min(srtt, rcv_rtt) as Yuchung suggested, because rcv_rtt
    can be over estimated for RPC (or sender limited)
====================

Signed-off-by: David S. Miller <davem@davemloft.net>