]> Pileus Git - ~andy/linux/blobdiff - include/net/tcp.h
TCP: avoid to send keepalive probes if receiving data
[~andy/linux] / include / net / tcp.h
index 3f87fd87bc9cb306ce70012be65117506007b5db..fb5c66b2ab811a5e9bf909f46739db6e9d81e4a6 100644 (file)
@@ -1033,6 +1033,14 @@ static inline int keepalive_probes(const struct tcp_sock *tp)
        return tp->keepalive_probes ? : sysctl_tcp_keepalive_probes;
 }
 
+static inline u32 keepalive_time_elapsed(const struct tcp_sock *tp)
+{
+       const struct inet_connection_sock *icsk = &tp->inet_conn;
+
+       return min_t(u32, tcp_time_stamp - icsk->icsk_ack.lrcvtime,
+                         tcp_time_stamp - tp->rcv_tstamp);
+}
+
 static inline int tcp_fin_time(const struct sock *sk)
 {
        int fin_timeout = tcp_sk(sk)->linger2 ? : sysctl_tcp_fin_timeout;