aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/networking
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-03-07 16:08:59 -0500
committerDavid S. Miller <davem@davemloft.net>2014-03-07 16:08:59 -0500
commit389400428953bb002b173fa07d16d7a6f120843f (patch)
tree06aa3fd674a970fdbfc63866a2cd9b295e21a61c /Documentation/networking
parent4caeccb4de76440e433a15009636e77d003eb3d6 (diff)
parent7727640cc3c4d03b6a3cb5bf26d48c72e31403ca (diff)
Merge tag 'rxrpc-devel-20140304' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
David Howells says: ==================== net-next: AF_RXRPC fixes and development Here are some AF_RXRPC fixes: (1) Fix to remove incorrect checksum calculation made during recvmsg(). It's unnecessary to try to do this there since we check the checksum before reading the RxRPC header from the packet. (2) Fix to prevent the sending of an ABORT packet in response to another ABORT packet and inducing a storm. (3) Fix UDP MTU calculation from parsing ICMP_FRAG_NEEDED packets where we don't handle the ICMP packet not specifying an MTU size. And development patches: (4) Add sysctls for configuring RxRPC parameters, specifically various delays pertaining to ACK generation, the time before we resend a packet for which we don't receive an ACK, the maximum time a call is permitted to live and the amount of time transport, connection and dead call information is cached. (5) Improve ACK packet production by adjusting the handling of ACK_REQUESTED packets, ignoring the MORE_PACKETS flag, delaying the production of otherwise immediate ACK_IDLE packets and delaying all ACK_IDLE production (barring the call termination) to half a second. (6) Add more sysctl parameters to expose the Rx window size, the maximum packet size that we're willing to receive and the number of jumbo rxrpc packets we're willing to handle in a single UDP packet. (7) Request ACKs on alternate DATA packets so that the other side doesn't wait till we fill up the Tx window. (8) Use a RCU hash table to look up the rxrpc_call for an incoming packet rather than stepping through a hierarchy involving several spinlocks. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/networking')
-rw-r--r--Documentation/networking/rxrpc.txt81
1 files changed, 81 insertions, 0 deletions
diff --git a/Documentation/networking/rxrpc.txt b/Documentation/networking/rxrpc.txt
index b89bc82eed46..16a924c486bf 100644
--- a/Documentation/networking/rxrpc.txt
+++ b/Documentation/networking/rxrpc.txt
@@ -27,6 +27,8 @@ Contents of this document:
27 27
28 (*) AF_RXRPC kernel interface. 28 (*) AF_RXRPC kernel interface.
29 29
30 (*) Configurable parameters.
31
30 32
31======== 33========
32OVERVIEW 34OVERVIEW
@@ -864,3 +866,82 @@ The kernel interface functions are as follows:
864 866
865 This is used to allocate a null RxRPC key that can be used to indicate 867 This is used to allocate a null RxRPC key that can be used to indicate
866 anonymous security for a particular domain. 868 anonymous security for a particular domain.
869
870
871=======================
872CONFIGURABLE PARAMETERS
873=======================
874
875The RxRPC protocol driver has a number of configurable parameters that can be
876adjusted through sysctls in /proc/net/rxrpc/:
877
878 (*) req_ack_delay
879
880 The amount of time in milliseconds after receiving a packet with the
881 request-ack flag set before we honour the flag and actually send the
882 requested ack.
883
884 Usually the other side won't stop sending packets until the advertised
885 reception window is full (to a maximum of 255 packets), so delaying the
886 ACK permits several packets to be ACK'd in one go.
887
888 (*) soft_ack_delay
889
890 The amount of time in milliseconds after receiving a new packet before we
891 generate a soft-ACK to tell the sender that it doesn't need to resend.
892
893 (*) idle_ack_delay
894
895 The amount of time in milliseconds after all the packets currently in the
896 received queue have been consumed before we generate a hard-ACK to tell
897 the sender it can free its buffers, assuming no other reason occurs that
898 we would send an ACK.
899
900 (*) resend_timeout
901
902 The amount of time in milliseconds after transmitting a packet before we
903 transmit it again, assuming no ACK is received from the receiver telling
904 us they got it.
905
906 (*) max_call_lifetime
907
908 The maximum amount of time in seconds that a call may be in progress
909 before we preemptively kill it.
910
911 (*) dead_call_expiry
912
913 The amount of time in seconds before we remove a dead call from the call
914 list. Dead calls are kept around for a little while for the purpose of
915 repeating ACK and ABORT packets.
916
917 (*) connection_expiry
918
919 The amount of time in seconds after a connection was last used before we
920 remove it from the connection list. Whilst a connection is in existence,
921 it serves as a placeholder for negotiated security; when it is deleted,
922 the security must be renegotiated.
923
924 (*) transport_expiry
925
926 The amount of time in seconds after a transport was last used before we
927 remove it from the transport list. Whilst a transport is in existence, it
928 serves to anchor the peer data and keeps the connection ID counter.
929
930 (*) rxrpc_rx_window_size
931
932 The size of the receive window in packets. This is the maximum number of
933 unconsumed received packets we're willing to hold in memory for any
934 particular call.
935
936 (*) rxrpc_rx_mtu
937
938 The maximum packet MTU size that we're willing to receive in bytes. This
939 indicates to the peer whether we're willing to accept jumbo packets.
940
941 (*) rxrpc_rx_jumbo_max
942
943 The maximum number of packets that we're willing to accept in a jumbo
944 packet. Non-terminal packets in a jumbo packet must contain a four byte
945 header plus exactly 1412 bytes of data. The terminal packet must contain
946 a four byte header plus any amount of data. In any event, a jumbo packet
947 may not exceed rxrpc_rx_mtu in size.