rxrpc: Reduce ssthresh to peer's receive window
authorDavid Howells <dhowells@redhat.com>
Fri, 30 Sep 2016 08:33:27 +0000 (09:33 +0100)
committerDavid Howells <dhowells@redhat.com>
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 <dhowells@redhat.com>
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));