From: David Dull

To: Adriano Cordova

Cc: Simon Horman, Julian Anastasov, Pablo Neira Ayuso, Florian Westphal, 
netfilter-devel, lvs-devel, netdev, linux-kernel

This patch has already been reviewed by the netdev bot with Sashiko on 
2026-09-21 for the v4 revision of this same selftest patch. That review found 
three possible issues. First the changelog wording claimed a bare SYN ACK 
suffices but the probe actually sends a bare SYN followed by a separate bare 
ACK. Second the script has no kernel side prerequisite check and no skip path 
for when ip_vs is unavailable. Third the secure side assertion cannot 
distinguish between the per service secure_tcp working correctly and the ACK 
probe never arriving at all.

This v5 revision appears to address the first and second points by rewording 
the changelog to say a bare SYN followed by a bare ACK and by adding module 
availability checks for ip_vs and ip_vs_rr. The third concern about the 
assertion being ambiguous if the ACK probe fails is addressed by the addition 
of checking the probe exit status so a probe that dies after the SYN cannot 
leave the secure side SYN_RECV assertion passing incorrectly.

The code itself is well structured with proper error checking in the libmnl 
helper for setsockopt sendto and mnl_socket_bind return values. The fallback 
definition for IP_VS_SVC_F_SECURE_TCP in the helper is a reasonable approach 
for older userspace headers. The test topology and the approach of using TTL 
one probes to prevent the packets from reaching the real server is sound.

However there is one remaining concern. The assertion that the plain service 
reaches ESTABLISHED state depends on the probe successfully sending both the 
SYN and the ACK. If the second sendto call fails in the probe the exit status 
will be non zero and the test will report failure. But if the ACK packet is 
sent successfully and simply does not reach IPVS for some reason the connection 
may still be in SYN_RECV when the assertion runs. The sleep between the probe 
and the assertion is only one second which may not be sufficient on a heavily 
loaded system. Consider increasing the sleep or adding a retry loop for the 
state check.

Overall the patch is in good shape and addresses the prior review comments 
appropriately.

Reviewed-by: David Dull

Signed-off-by: David Dull

Reply via email to