kernel_optimize_test/include/net
David Howells c410bf0193 rxrpc: Fix the excessive initial retransmission timeout
rxrpc currently uses a fixed 4s retransmission timeout until the RTT is
sufficiently sampled.  This can cause problems with some fileservers with
calls to the cache manager in the afs filesystem being dropped from the
fileserver because a packet goes missing and the retransmission timeout is
greater than the call expiry timeout.

Fix this by:

 (1) Copying the RTT/RTO calculation code from Linux's TCP implementation
     and altering it to fit rxrpc.

 (2) Altering the various users of the RTT to make use of the new SRTT
     value.

 (3) Replacing the use of rxrpc_resend_timeout to use the calculated RTO
     value instead (which is needed in jiffies), along with a backoff.

Notes:

 (1) rxrpc provides RTT samples by matching the serial numbers on outgoing
     DATA packets that have the RXRPC_REQUEST_ACK set and PING ACK packets
     against the reference serial number in incoming REQUESTED ACK and
     PING-RESPONSE ACK packets.

 (2) Each packet that is transmitted on an rxrpc connection gets a new
     per-connection serial number, even for retransmissions, so an ACK can
     be cross-referenced to a specific trigger packet.  This allows RTT
     information to be drawn from retransmitted DATA packets also.

 (3) rxrpc maintains the RTT/RTO state on the rxrpc_peer record rather than
     on an rxrpc_call because many RPC calls won't live long enough to
     generate more than one sample.

 (4) The calculated SRTT value is in units of 8ths of a microsecond rather
     than nanoseconds.

The (S)RTT and RTO values are displayed in /proc/net/rxrpc/peers.

Fixes: 17926a7932 ([AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both"")
Signed-off-by: David Howells <dhowells@redhat.com>
2020-05-11 16:42:28 +01:00
..
9p net/9p: remove unused p9_req_t aux field 2020-03-27 09:29:57 +00:00
bluetooth Bluetooth: L2CAP: Use DEFER_SETUP to group ECRED connections 2020-03-25 22:16:08 +01:00
caif
iucv
netfilter netfilter: nf_tables: do not update stateful expressions if lookup is inverted 2020-04-05 23:26:36 +02:00
netns mptcp: add and use MIB counter infrastructure 2020-03-29 22:14:49 -07:00
nfc NFC: Replace zero-length array with flexible-array member 2020-02-27 12:06:20 -08:00
phonet
sctp net: sctp: Replace zero-length array with flexible-array member 2020-02-29 21:52:19 -08:00
tc_act net: tc_skbedit: Make the skbedit priority offloadable 2020-03-19 21:09:19 -07:00
6lowpan.h 6lowpan: Replace zero-length array with flexible-array member 2020-02-28 14:51:30 +01:00
act_api.h net: sched: expose HW stats types per action used by drivers 2020-03-30 11:06:49 -07:00
addrconf.h addrconf: add functionality to check on rpl requirements 2020-03-29 22:30:57 -07:00
af_ieee802154.h
af_rxrpc.h rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
af_unix.h unix: uses an atomic type for scm files accounting 2020-02-28 12:12:53 -08:00
af_vsock.h
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
bareudp.h net: Special handling for IP & MPLS. 2020-02-24 13:31:42 -08:00
bond_3ad.h
bond_alb.h
bond_options.h
bonding.h bonding: Replace zero-length array with flexible-array member 2020-02-28 12:08:37 -08:00
bpf_sk_storage.h bpf: INET_DIAG support in bpf_sk_storage 2020-02-27 18:50:19 -08:00
busy_poll.h
calipso.h
cfg80211-wext.h
cfg80211.h cfg80211: fix kernel-doc notation 2020-04-14 12:40:02 +02:00
cfg802154.h cfg802154: Replace zero-length array with flexible-array member 2020-02-29 14:39:08 +01:00
checksum.h
cipso_ipv4.h
cls_cgroup.h bpf: Allow to retrieve cgroup v1 classid from v2 hooks 2020-03-27 19:40:38 -07:00
codel_impl.h
codel_qdisc.h
codel.h
compat.h net: abstract out normal and compat msghdr import 2020-03-10 09:12:49 -06:00
datalink.h
dcbevent.h
dcbnl.h
devlink.h devlink: Allow setting of packet trap group parameters 2020-03-30 17:54:58 -07:00
dn_dev.h
dn_fib.h net: dn_fib: Replace zero-length array with flexible-array member 2020-02-29 21:52:20 -08:00
dn_neigh.h
dn_nsp.h
dn_route.h
dn.h
drop_monitor.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-03-31 17:29:33 -07:00
dsa.h net: dsa: add port policers 2020-03-30 11:44:00 -07:00
dsfield.h
dst_cache.h
dst_metadata.h
dst_ops.h
dst.h Remove DST_HOST 2020-03-23 21:57:44 -07:00
erspan.h
esp.h ESP: Export esp_output_fill_trailer function 2020-02-19 13:52:32 +01:00
espintcp.h
ethoc.h
failover.h
fib_notifier.h
fib_rules.h fib: add missing attribute validation for tun_id 2020-03-03 13:28:48 -08:00
firewire.h
flow_dissector.h net: sched: correct flower port blocking 2020-02-17 21:33:28 -08:00
flow_offload.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2020-03-30 19:40:46 -07:00
flow.h
fou.h
fq_impl.h
fq.h
garp.h
gen_stats.h
genetlink.h
geneve.h
gre.h
gro_cells.h
gtp.h
gue.h
hwbm.h
icmp.h icmp: introduce helper for nat'd source address in network device context 2020-02-13 14:19:00 -08:00
ieee80211_radiotap.h
ieee802154_netdev.h
if_inet6.h
ife.h
ila.h
inet_common.h
inet_connection_sock.h bpf: sockmap: Only check ULP for TCP sockets 2020-03-09 22:34:58 +01:00
inet_ecn.h
inet_frag.h
inet_hashtables.h net: Track socket refcounts in skb_steal_sock() 2020-03-30 13:45:04 -07:00
inet_sock.h net: inet_sock: Replace zero-length array with flexible-array member 2020-03-02 11:16:28 -08:00
inet_timewait_sock.h
inet6_connection_sock.h
inet6_hashtables.h net: Track socket refcounts in skb_steal_sock() 2020-03-30 13:45:04 -07:00
inetpeer.h
ip_fib.h net: add net available in build_state 2020-03-29 22:30:57 -07:00
ip_tunnels.h
ip_vs.h
ip.h
ip6_checksum.h net: core: add helper tcp_v6_gso_csum_prep 2020-02-19 11:20:59 -08:00
ip6_fib.h Remove DST_HOST 2020-03-23 21:57:44 -07:00
ip6_route.h net: ipv6: do not consider routes via gateways for anycast address check 2020-04-07 18:26:52 -07:00
ip6_tunnel.h
ipcomp.h
ipconfig.h
ipv6_frag.h
ipv6_stubs.h
ipv6.h net: UDP tunnel encapsulation module for tunnelling different protocols like MPLS, IP, NSH etc. 2020-02-24 13:31:42 -08:00
ipx.h bonding/alb: properly access headers in bond_alb_xmit() 2020-02-05 14:28:09 +01:00
iw_handler.h
kcm.h
l3mdev.h
lag.h
lapb.h
lib80211.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
lwtunnel.h net: add net available in build_state 2020-03-29 22:30:57 -07:00
mac80211.h mac80211: populate debugfs only after cfg80211 init 2020-04-24 11:30:13 +02:00
mac802154.h
macsec.h net: macsec: add support for getting offloaded stats 2020-03-26 20:17:36 -07:00
mip6.h net: mip6: Replace zero-length array with flexible-array member 2020-03-02 11:16:27 -08:00
mld.h net: ipv6: mld: Replace zero-length array with flexible-array member 2020-02-29 21:52:20 -08:00
mpls_iptunnel.h net: mpls: Replace zero-length array with flexible-array member 2020-02-28 12:08:37 -08:00
mpls.h
mptcp.h mptcp: add and use MIB counter infrastructure 2020-03-29 22:14:49 -07:00
mrp.h
ncsi.h
ndisc.h ipv6: ndisc: RFC-ietf-6man-ra-pref64-09 is now published as RFC8781 2020-04-22 12:15:07 -07:00
neighbour.h neighbour: Replace zero-length array with flexible-array member 2020-02-29 21:52:20 -08:00
net_failover.h
net_namespace.h bpf, net: Fix build issue when net ns not configured 2020-03-30 01:16:50 +02:00
net_ratelimit.h
netevent.h
netlabel.h
netlink.h net: introduce nla_put_bitfield32() helper and use it 2020-03-30 11:06:49 -07:00
netprio_cgroup.h
netrom.h
nexthop.h net: nexthop: Replace zero-length array with flexible-array member 2020-02-29 21:52:20 -08:00
nl802154.h
nsh.h
p8022.h
page_pool.h net: page_pool: API cleanup and comments 2020-02-20 10:09:25 -08:00
pie.h pie: realign comment 2020-03-04 13:25:55 -08:00
ping.h
pkt_cls.h net: sched: expose HW stats types per action used by drivers 2020-03-30 11:06:49 -07:00
pkt_sched.h net_sched: add qdisc_watchdog_schedule_range_ns() 2020-03-17 21:16:34 -07:00
pptp.h
protocol.h
psample.h
psnap.h
raw.h
rawv6.h
red.h net: sched: RED: Introduce an ECN nodrop mode 2020-03-14 21:03:46 -07:00
regulatory.h
request_sock.h
rose.h
route.h Remove DST_HOST 2020-03-23 21:57:44 -07:00
rpl.h net: ipv6: add rpl sr tunnel 2020-03-29 22:30:57 -07:00
rsi_91x.h
rtnetlink.h
rtnh.h
sch_generic.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
scm.h
secure_seq.h
seg6_hmac.h
seg6_local.h
seg6.h
slhc_vj.h
smc.h
snmp.h
sock_reuseport.h net: sock_reuseport: Replace zero-length array with flexible-array member 2020-02-29 21:52:19 -08:00
sock.h net: sock.h: fix skb_steal_sock() kernel-doc 2020-04-07 18:09:30 -07:00
Space.h
stp.h
strparser.h
switchdev.h
tcp_states.h
tcp.h tcp: cache line align MAX_TCP_HEADER 2020-04-18 15:47:28 -07:00
timewait_sock.h
tipc.h
tls_toe.h
tls.h
transp_v6.h
tso.h
tun_proto.h
udp_tunnel.h
udp.h bpf: Add sockmap hooks for UDP sockets 2020-03-09 22:34:58 +01:00
udplite.h
vsock_addr.h
vxlan.h
wext.h
wimax.h
x25.h
x25device.h
xdp_priv.h
xdp_sock.h
xdp.h
xfrm.h