mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 09:02:06 +00:00
tcp: add SYN/data info to TCP_INFO
Add a bit TCPI_OPT_SYN_DATA (32) to the socket option TCP_INFO:tcpi_options. It's set if the data in SYN (sent or received) is acked by SYN-ACK. Server or client application can use this information to check Fast Open success rate. Signed-off-by: Yuchung Cheng <ycheng@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e6e71054cd
commit
6f73601efb
6 changed files with 8 additions and 1 deletions
|
@ -2764,6 +2764,8 @@ void tcp_get_info(const struct sock *sk, struct tcp_info *info)
|
|||
info->tcpi_options |= TCPI_OPT_ECN;
|
||||
if (tp->ecn_flags & TCP_ECN_SEEN)
|
||||
info->tcpi_options |= TCPI_OPT_ECN_SEEN;
|
||||
if (tp->syn_data_acked)
|
||||
info->tcpi_options |= TCPI_OPT_SYN_DATA;
|
||||
|
||||
info->tcpi_rto = jiffies_to_usecs(icsk->icsk_rto);
|
||||
info->tcpi_ato = jiffies_to_usecs(icsk->icsk_ack.ato);
|
||||
|
|
|
@ -5646,6 +5646,7 @@ static bool tcp_rcv_fastopen_synack(struct sock *sk, struct sk_buff *synack,
|
|||
tcp_rearm_rto(sk);
|
||||
return true;
|
||||
}
|
||||
tp->syn_data_acked = tp->syn_data;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1461,6 +1461,7 @@ static int tcp_v4_conn_req_fastopen(struct sock *sk,
|
|||
skb_set_owner_r(skb, child);
|
||||
__skb_queue_tail(&child->sk_receive_queue, skb);
|
||||
tp->rcv_nxt = TCP_SKB_CB(skb)->end_seq;
|
||||
tp->syn_data_acked = 1;
|
||||
}
|
||||
sk->sk_data_ready(sk, 0);
|
||||
bh_unlock_sock(child);
|
||||
|
|
|
@ -510,6 +510,7 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req,
|
|||
newtp->rx_opt.mss_clamp = req->mss;
|
||||
TCP_ECN_openreq_child(newtp, req);
|
||||
newtp->fastopen_rsk = NULL;
|
||||
newtp->syn_data_acked = 0;
|
||||
|
||||
TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_PASSIVEOPENS);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue