linux/net/rxrpc
David Howells 9823f39a17 af_rxrpc: Improve ACK production
Improve ACK production by the following means:

 (1) Don't send an ACK_REQUESTED ack immediately even if the RXRPC_MORE_PACKETS
     flag isn't set on a data packet that has also has RXRPC_REQUEST_ACK set.

     MORE_PACKETS just means that the sender just emptied its Tx data buffer.
     More data will be forthcoming unless RXRPC_LAST_PACKET is also flagged.

     It is possible to see runs of DATA packets with MORE_PACKETS unset that
     aren't waiting for an ACK.

     It is therefore better to wait a small instant to see if we can combine an
     ACK for several packets.

 (2) Don't send an ACK_IDLE ack immediately unless we're responding to the
     terminal data packet of a call.

     Whilst sending an ACK_IDLE mid-call serves to let the other side know
     that we won't be asking it to resend certain Tx buffers and that it can
     discard them, spamming it with loads of acks just because we've
     temporarily run out of data just distracts it.

 (3) Put the ACK_IDLE ack generation timeout up to half a second rather than a
     single jiffy.  Just because we haven't been given more data immediately
     doesn't mean that more isn't forthcoming.  The other side may be busily
     finding the data to send to us.

Signed-off-by: David Howells <dhowells@redhat.com>
2014-02-26 17:25:07 +00:00
..
af_rxrpc.c af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
ar-accept.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ar-ack.c af_rxrpc: Improve ACK production 2014-02-26 17:25:07 +00:00
ar-call.c af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
ar-connection.c af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
ar-connevent.c rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection() 2011-05-19 18:35:58 -04:00
ar-error.c af_rxrpc: Fix UDP MTU calculation from ICMP_FRAG_NEEDED 2014-02-26 17:25:01 +00:00
ar-input.c af_rxrpc: Improve ACK production 2014-02-26 17:25:07 +00:00
ar-internal.h af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
ar-key.c Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-14 13:39:34 -07:00
ar-local.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ar-output.c af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
ar-peer.c net/rxrpc/ar-peer.c: remove invalid reference to list iterator variable 2012-07-09 15:24:33 -07:00
ar-proc.c net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
ar-recvmsg.c af_rxrpc: Remove incorrect checksum calculation from rxrpc_recvmsg() 2014-02-07 18:58:43 +00:00
ar-security.c RxRPC: Allow key payloads to be passed in XDR form 2009-09-15 02:44:23 -07:00
ar-skbuff.c af_rxrpc: Improve ACK production 2014-02-26 17:25:07 +00:00
ar-transport.c af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
Kconfig net/rxrpc: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:40:02 -08:00
Makefile af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00
rxkad.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
sysctl.c af_rxrpc: Add sysctls for configuring RxRPC parameters 2014-02-26 17:25:06 +00:00