tcp: extract code to compute SYNACK RTT
authorNeal Cardwell <ncardwell@google.com>
Sat, 22 Sep 2012 04:18:54 +0000 (04:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 22 Sep 2012 19:47:10 +0000 (15:47 -0400)
In preparation for adding another spot where we compute the SYNACK
RTT, extract this code so that it can be shared.

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c

index a8cb00c..a718d0e 100644 (file)
@@ -1137,6 +1137,15 @@ static inline void tcp_openreq_init(struct request_sock *req,
        ireq->loc_port = tcp_hdr(skb)->dest;
 }
 
+/* Compute time elapsed between SYNACK and the ACK completing 3WHS */
+static inline void tcp_synack_rtt_meas(struct sock *sk,
+                                      struct request_sock *req)
+{
+       if (tcp_rsk(req)->snt_synack)
+               tcp_valid_rtt_meas(sk,
+                   tcp_time_stamp - tcp_rsk(req)->snt_synack);
+}
+
 extern void tcp_enter_memory_pressure(struct sock *sk);
 
 static inline int keepalive_intvl_when(const struct tcp_sock *tp)
index e64abed..1e66f7f 100644 (file)
@@ -1733,9 +1733,7 @@ struct sock *tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
                newtp->advmss = tcp_sk(sk)->rx_opt.user_mss;
 
        tcp_initialize_rcv_mss(newsk);
-       if (tcp_rsk(req)->snt_synack)
-               tcp_valid_rtt_meas(newsk,
-                   tcp_time_stamp - tcp_rsk(req)->snt_synack);
+       tcp_synack_rtt_meas(newsk, req);
        newtp->total_retrans = req->retrans;
 
 #ifdef CONFIG_TCP_MD5SIG
index f3bfb8b..cfeeeb7 100644 (file)
@@ -1348,9 +1348,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
                newtp->advmss = tcp_sk(sk)->rx_opt.user_mss;
 
        tcp_initialize_rcv_mss(newsk);
-       if (tcp_rsk(req)->snt_synack)
-               tcp_valid_rtt_meas(newsk,
-                   tcp_time_stamp - tcp_rsk(req)->snt_synack);
+       tcp_synack_rtt_meas(newsk, req);
        newtp->total_retrans = req->retrans;
 
        newinet->inet_daddr = newinet->inet_saddr = LOOPBACK4_IPV6;