rxrpc: Reduce ssthresh to peer's receive window
authorDavid Howells <[email protected]>
Fri, 30 Sep 2016 08:33:27 +0000 (09:33 +0100)
committerDavid Howells <[email protected]>
Fri, 30 Sep 2016 13:38:59 +0000 (14:38 +0100)
When we receive an ACK from the peer that tells us what the peer's receive
window (rwind) is, we should reduce ssthresh to rwind if rwind is smaller
than ssthresh.

Signed-off-by: David Howells <[email protected]>
net/rxrpc/input.c

index 21746f0f7ae0ca8df8e9f3b78d99b286431d2ac7..7993473e56bbdb6240661de62f1f6d4f497bfc0c 100644 (file)
@@ -658,6 +658,8 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
        if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
                rwind = RXRPC_RXTX_BUFF_SIZE - 1;
        call->tx_winsize = rwind;
+       if (call->cong_ssthresh > rwind)
+               call->cong_ssthresh = rwind;
 
        mtu = min(ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU));