Two-phase queue run perf: parallel processes for phase one
[users/jgh/exim.git] / test / scripts / 1990-TCP-Fast-Open / 1990
index ec8e32c8f0935780d345995b635514f1c182b102..80059e685cd9c6eace1350df5f6e42235471b48b 100644 (file)
 # which might do the job.  But how to manipulate it?
 #
 #
+# FreeBSD: it looks like you have to compile a custom kernel, with
+# 'options TCP_RFC7413' in the config.  Also set
+# 'net.inet.tcp.fastopen.server_enable=1' in /etc/sysctl.conf
+# Seems to always claim TFO used by transport, if tried.
+#
 sudo perl
 system ("tc qdisc add dev lo root netem delay 50ms");
 ****
 #
+#
+# Disable the TFO blackhole detection, as we seem to be running foul of it.
+# If bitten, we see the expected EINPROGRESS for sendto, yet no TFO cookie
+# option on the SYN.
+#
+sudo perl
+system ("[ -e /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec ] && echo 0 > /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec");
+****
+#
 # First time runs will see a TFO request option only; subsequent
 # ones should see the TFO cookie and fast-output SMTP banner
 # (currently on a separate packet after the server SYN,ACK but before
@@ -41,11 +55,6 @@ system ("ip tcp_metrics delete 127.0.0.1");
 #
 #
 #
-# FreeBSD: it looks like you have to compile a custom kernel, with
-# 'options TCP_RFC7413' in the config.  Also set
-# 'net.inet.tcp.fastopen.enabled=1' in /etc/sysctl.conf
-# Untested.
-#
 exim -DSERVER=server -bd -oX PORT_D
 ****
 #
@@ -66,6 +75,7 @@ sleep 3
 #
 sudo perl
 system ("tc qdisc delete dev lo root");
+system ("[ -e /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec ] && echo 3600 > /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec");
 ****
 #
 killdaemon