rxrpc: Allow tx_winsize to grow in response to an ACK
Allow tx_winsize to grow when the ACK info packet shows a larger receive window at the other end rather than only permitting it to shrink. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
Родитель
89a80ed4c0
Коммит
01fd074224
|
@ -333,14 +333,16 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb,
|
|||
struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
|
||||
struct rxrpc_peer *peer;
|
||||
unsigned int mtu;
|
||||
u32 rwind = ntohl(ackinfo->rwind);
|
||||
|
||||
_proto("Rx ACK %%%u Info { rx=%u max=%u rwin=%u jm=%u }",
|
||||
sp->hdr.serial,
|
||||
ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU),
|
||||
ntohl(ackinfo->rwind), ntohl(ackinfo->jumbo_max));
|
||||
rwind, ntohl(ackinfo->jumbo_max));
|
||||
|
||||
if (call->tx_winsize > ntohl(ackinfo->rwind))
|
||||
call->tx_winsize = ntohl(ackinfo->rwind);
|
||||
if (rwind > RXRPC_RXTX_BUFF_SIZE - 1)
|
||||
rwind = RXRPC_RXTX_BUFF_SIZE - 1;
|
||||
call->tx_winsize = rwind;
|
||||
|
||||
mtu = min(ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU));
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче