diff options
author | David Howells <dhowells@redhat.com> | 2016-09-13 22:36:22 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2016-09-13 22:38:45 +0100 |
commit | 75e42126399220069ada0ca0e93237993c6afccf (patch) | |
tree | 33e6f4d4378ac573346d0b405cc335db93c6830f /net/rxrpc/misc.c | |
parent | 3432a757b1f889f8c0d33cd9fcabdae172ed812b (diff) | |
download | lwn-75e42126399220069ada0ca0e93237993c6afccf.tar.gz lwn-75e42126399220069ada0ca0e93237993c6afccf.zip |
rxrpc: Correctly initialise, limit and transmit call->rx_winsize
call->rx_winsize should be initialised to the sysctl setting and the sysctl
setting should be limited to the maximum we want to permit. Further, we
need to place this in the ACK info instead of the sysctl setting.
Furthermore, discard the idea of accepting the subpackets of a jumbo packet
that lie beyond the receive window when the first packet of the jumbo is
within the window. Just discard the excess subpackets instead. This
allows the receive window to be opened up right to the buffer size less one
for the dead slot.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/misc.c')
-rw-r--r-- | net/rxrpc/misc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/rxrpc/misc.c b/net/rxrpc/misc.c index fd096f742e4b..8b910780f1ac 100644 --- a/net/rxrpc/misc.c +++ b/net/rxrpc/misc.c @@ -50,7 +50,10 @@ unsigned int rxrpc_idle_ack_delay = 0.5 * HZ; * limit is hit, we should generate an EXCEEDS_WINDOW ACK and discard further * packets. */ -unsigned int rxrpc_rx_window_size = RXRPC_RXTX_BUFF_SIZE - 46; +unsigned int rxrpc_rx_window_size = RXRPC_INIT_RX_WINDOW_SIZE; +#if (RXRPC_RXTX_BUFF_SIZE - 1) < RXRPC_INIT_RX_WINDOW_SIZE +#error Need to reduce RXRPC_INIT_RX_WINDOW_SIZE +#endif /* * Maximum Rx MTU size. This indicates to the sender the size of jumbo packet |