diff options
author | Eric Dumazet <edumazet@google.com> | 2024-04-07 12:33:21 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2024-04-09 12:47:40 +0300 |
commit | b9e810405880c99baafd550ada7043e86465396e (patch) | |
tree | 566cd8d08635f68c3445deb14a04d51e66a1e9cd /include/net/tcp.h | |
parent | 1c25fe9a044d5334153a3585754b26553f8287b9 (diff) | |
download | linux-b9e810405880c99baafd550ada7043e86465396e.tar.xz |
tcp: propagate tcp_tw_isn via an extra parameter to ->route_req()
tcp_v6_init_req() reads TCP_SKB_CB(skb)->tcp_tw_isn to find
out if the request socket is created by a SYN hitting a TIMEWAIT socket.
This has been buggy for a decade, lets directly pass the information
from tcp_conn_request().
This is a preparatory patch to make the following one easier to review.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r-- | include/net/tcp.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index 9ab5b37e9d53..fa0ab77acee2 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -2284,7 +2284,8 @@ struct tcp_request_sock_ops { struct dst_entry *(*route_req)(const struct sock *sk, struct sk_buff *skb, struct flowi *fl, - struct request_sock *req); + struct request_sock *req, + u32 tw_isn); u32 (*init_seq)(const struct sk_buff *skb); u32 (*init_ts_off)(const struct net *net, const struct sk_buff *skb); int (*send_synack)(const struct sock *sk, struct dst_entry *dst, |