4 # Both server and client-side TFO support must be enabled in the
5 # kernel, 'sudo sh -c "echo 3 > /proc/sys/net/ipv4/tcp_fastopen"'.
7 # A packet capture on the loopback interface will show the TFO
8 # option on the SYN, but the fast-output SMTP banner will not
9 # be seen unless you also deliberately emulate a long path:
10 # 'sudo tc qdisc add dev lo root netem delay 100ms'
11 # You'll need kernel-modules-extra installed, or you get
12 # an unhelpful error from RTNETLINK.
13 # To tidy up: 'sudo tc qdisc delete dev lo root'
15 # First time runs will see a TFO request option only; subsequent
16 # ones should see the TFO cookie and fast-output SMTP banner
17 # (currently on a separate packet after the server SYN,ACK but before
20 # The client log => lint.ex should have a "TFO" element.
21 # Assuming this is the first run since boot, the a@test recipient will not.
23 # The server log <= line for b@test.ex should have a "TFO" element, but
24 # this will only be obtained when the above delay is inserted into the
27 # this attempt to tidy up does not work
29 #open (my $fh, "/proc/sys/net/ipv4/tcp_fastopen_key");
30 #print $fh "00000000-00000000-00000000-00000000";
35 # FreeBSD: it looks like you have to compile a custom kernel, with
36 # 'options TCP_RFC7413' in the config. Also set
37 # 'net.inet.tcp.fastopen.enabled=1' in /etc/sysctl.conf
40 exim -DSERVER=server -bd -oX PORT_D