|
@@ -1691,11 +1691,16 @@ static inline void tcp_reset_reno_sack(struct tcp_sock *tp)
|
|
int tcp_use_frto(struct sock *sk)
|
|
int tcp_use_frto(struct sock *sk)
|
|
{
|
|
{
|
|
const struct tcp_sock *tp = tcp_sk(sk);
|
|
const struct tcp_sock *tp = tcp_sk(sk);
|
|
|
|
+ const struct inet_connection_sock *icsk = inet_csk(sk);
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
|
|
|
|
if (!sysctl_tcp_frto)
|
|
if (!sysctl_tcp_frto)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+ /* MTU probe and F-RTO won't really play nicely along currently */
|
|
|
|
+ if (icsk->icsk_mtup.probe_size)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
if (IsSackFrto())
|
|
if (IsSackFrto())
|
|
return 1;
|
|
return 1;
|
|
|
|
|