Bug 214913

Summary: SO_KEEPALIVE does not work?
Product: Base System Reporter: Victor Porton <porton>
Component: kernAssignee: freebsd-net (Nobody) <net>
Status: New ---    
Severity: Affects Many People CC: ae
Priority: ---    
Version: 9.2-RELEASE   
Hardware: amd64   
OS: Any   

Description Victor Porton 2016-11-28 20:24:35 UTC
See http://bugs.python.org/issue28825
Comment 1 Andrey V. Elsukov freebsd_committer freebsd_triage 2016-11-29 10:56:18 UTC
SO_KEEPALIVE option doesn't mean that your connection will live forever. It only enables keepalive probes. These probes are carried out to determine that your connection is still alive. Note, not for keeping it alive.

In FreeBSD by default net.inet.tcp.always_keepalive variable configured to assume SO_KEEPALIVE on all TCP connections. But first keepalive probe will be made only after 2 hours of idle state. This is controlled by net.inet.tcp.keepidle variable.

Just have tested keepalive probes with lowered idle time to 65 seconds on FreeBSD 12.0. All works as expected.