Re: [PATCH net-next] Avoid reducing cwnd when ACK+DSACK is received
From: Neal Cardwell <ncardwell@google.com>
Date: 2014-12-12 15:54:12
On Thu, Dec 11, 2014 at 2:58 PM, Sébastien Barré [off-list ref] wrote:
When the peer has delayed ack enabled, it may reply to a probe with an ACK+D-SACK, with ack value set to tlp_high_seq. In the current code, such ACK+DSACK will be missed and only at next, higher ack will the TLP episode be considered done. Since the DSACK is not present anymore, this will cost a cwnd reduction. This patch ensures that this scenario does not cause a cwnd reduction, since receiving an ACK+DSACK indicates that both the initial segment and the probe have been received by the peer. Cc: Gregory Detal <redacted> Cc: Nandita Dukkipati <redacted> Cc: Yuchung Cheng <redacted> Signed-off-by: Sébastien Barré <redacted>
BTW, I like this idea, and I'll test it. Two suggestions for the next iteration: (1) for TCP patch style, I'd suggest a commit first-line like: tcp: avoid reducing cwnd when ACK+DSACK is received (2) Your patch is essentially a reworking of the is_tlp_dupack computation. So rather than splitting the logic between the is_tlp_dupack computation and the new expression inside the if condition, I'd suggest moving and centralizing all the logic in the if condition. There is no real need for the is_tlp_dupack variable. neal