]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
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 a8cb00c0c6d964224bc185d9e904cbbefc1165f5..a718d0e3d8e785af5deea49d4b9fd23f768773ae 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 e64abed249ccabd37660e4f707b9e488bade692a..1e66f7fb4fe6787bdefeabb2896fb4d3af56857d 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 f3bfb8bbfdec3f2a15b9afa17c2dfa80f59033e0..cfeeeb7fcf54905fa522b0489923b574804298e2 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;