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 21746f0..7993473 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));