Loading include/net/tcp.h +1 −0 Original line number Diff line number Diff line Loading @@ -389,6 +389,7 @@ extern void tcp_enter_loss(struct sock *sk, int how); extern void tcp_clear_retrans(struct tcp_sock *tp); extern void tcp_update_metrics(struct sock *sk); extern void tcp_init_metrics(struct sock *sk); extern bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst); extern void tcp_disable_fack(struct tcp_sock *tp); extern void tcp_close(struct sock *sk, long timeout); extern void tcp_init_sock(struct sock *sk); Loading net/ipv4/tcp_ipv4.c +1 −1 Original line number Diff line number Diff line Loading @@ -1405,7 +1405,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb) (sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < (sysctl_max_syn_backlog >> 2)) && (!peer || !peer->tcp_ts_stamp) && (!dst || !dst_metric(dst, RTAX_RTT))) { !tcp_peer_is_proven(req, dst)) { /* Without syncookies last quarter of * backlog is filled with destinations, * proven to be alive. Loading net/ipv4/tcp_metrics.c +10 −0 Original line number Diff line number Diff line #include <linux/module.h> #include <linux/cache.h> #include <linux/tcp.h> #include <net/inet_connection_sock.h> #include <net/request_sock.h> #include <net/sock.h> #include <net/dst.h> #include <net/tcp.h> Loading Loading @@ -190,3 +192,11 @@ reset: tp->snd_cwnd = tcp_init_cwnd(tp, dst); tp->snd_cwnd_stamp = tcp_time_stamp; } bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst) { if (!dst) return false; return dst_metric(dst, RTAX_RTT) ? true : false; } EXPORT_SYMBOL_GPL(tcp_peer_is_proven); net/ipv6/tcp_ipv6.c +1 −1 Original line number Diff line number Diff line Loading @@ -1177,7 +1177,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) (sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < (sysctl_max_syn_backlog >> 2)) && (!peer || !peer->tcp_ts_stamp) && (!dst || !dst_metric(dst, RTAX_RTT))) { !tcp_peer_is_proven(req, dst)) { /* Without syncookies last quarter of * backlog is filled with destinations, * proven to be alive. Loading Loading
include/net/tcp.h +1 −0 Original line number Diff line number Diff line Loading @@ -389,6 +389,7 @@ extern void tcp_enter_loss(struct sock *sk, int how); extern void tcp_clear_retrans(struct tcp_sock *tp); extern void tcp_update_metrics(struct sock *sk); extern void tcp_init_metrics(struct sock *sk); extern bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst); extern void tcp_disable_fack(struct tcp_sock *tp); extern void tcp_close(struct sock *sk, long timeout); extern void tcp_init_sock(struct sock *sk); Loading
net/ipv4/tcp_ipv4.c +1 −1 Original line number Diff line number Diff line Loading @@ -1405,7 +1405,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb) (sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < (sysctl_max_syn_backlog >> 2)) && (!peer || !peer->tcp_ts_stamp) && (!dst || !dst_metric(dst, RTAX_RTT))) { !tcp_peer_is_proven(req, dst)) { /* Without syncookies last quarter of * backlog is filled with destinations, * proven to be alive. Loading
net/ipv4/tcp_metrics.c +10 −0 Original line number Diff line number Diff line #include <linux/module.h> #include <linux/cache.h> #include <linux/tcp.h> #include <net/inet_connection_sock.h> #include <net/request_sock.h> #include <net/sock.h> #include <net/dst.h> #include <net/tcp.h> Loading Loading @@ -190,3 +192,11 @@ reset: tp->snd_cwnd = tcp_init_cwnd(tp, dst); tp->snd_cwnd_stamp = tcp_time_stamp; } bool tcp_peer_is_proven(struct request_sock *req, struct dst_entry *dst) { if (!dst) return false; return dst_metric(dst, RTAX_RTT) ? true : false; } EXPORT_SYMBOL_GPL(tcp_peer_is_proven);
net/ipv6/tcp_ipv6.c +1 −1 Original line number Diff line number Diff line Loading @@ -1177,7 +1177,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) (sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < (sysctl_max_syn_backlog >> 2)) && (!peer || !peer->tcp_ts_stamp) && (!dst || !dst_metric(dst, RTAX_RTT))) { !tcp_peer_is_proven(req, dst)) { /* Without syncookies last quarter of * backlog is filled with destinations, * proven to be alive. Loading