[TCP] FRTO: Moved tcp_use_frto from tcp.h to tcp_input.c
In addition, removed inline. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9ead9a1d38
commit
bdaae17da8
|
@ -341,6 +341,7 @@ extern struct sock * tcp_check_req(struct sock *sk,struct sk_buff *skb,
|
||||||
extern int tcp_child_process(struct sock *parent,
|
extern int tcp_child_process(struct sock *parent,
|
||||||
struct sock *child,
|
struct sock *child,
|
||||||
struct sk_buff *skb);
|
struct sk_buff *skb);
|
||||||
|
extern int tcp_use_frto(const struct sock *sk);
|
||||||
extern void tcp_enter_frto(struct sock *sk);
|
extern void tcp_enter_frto(struct sock *sk);
|
||||||
extern void tcp_enter_loss(struct sock *sk, int how);
|
extern void tcp_enter_loss(struct sock *sk, int how);
|
||||||
extern void tcp_clear_retrans(struct tcp_sock *tp);
|
extern void tcp_clear_retrans(struct tcp_sock *tp);
|
||||||
|
@ -1033,19 +1034,6 @@ static inline int tcp_paws_check(const struct tcp_options_received *rx_opt, int
|
||||||
|
|
||||||
#define TCP_CHECK_TIMER(sk) do { } while (0)
|
#define TCP_CHECK_TIMER(sk) do { } while (0)
|
||||||
|
|
||||||
static inline int tcp_use_frto(const struct sock *sk)
|
|
||||||
{
|
|
||||||
const struct tcp_sock *tp = tcp_sk(sk);
|
|
||||||
|
|
||||||
/* F-RTO must be activated in sysctl and there must be some
|
|
||||||
* unsent new data, and the advertised window should allow
|
|
||||||
* sending it.
|
|
||||||
*/
|
|
||||||
return (sysctl_tcp_frto && sk->sk_send_head &&
|
|
||||||
!after(TCP_SKB_CB(sk->sk_send_head)->end_seq,
|
|
||||||
tp->snd_una + tp->snd_wnd));
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void tcp_mib_init(void)
|
static inline void tcp_mib_init(void)
|
||||||
{
|
{
|
||||||
/* See RFC 2012 */
|
/* See RFC 2012 */
|
||||||
|
|
|
@ -1236,6 +1236,19 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tcp_use_frto(const struct sock *sk)
|
||||||
|
{
|
||||||
|
const struct tcp_sock *tp = tcp_sk(sk);
|
||||||
|
|
||||||
|
/* F-RTO must be activated in sysctl and there must be some
|
||||||
|
* unsent new data, and the advertised window should allow
|
||||||
|
* sending it.
|
||||||
|
*/
|
||||||
|
return (sysctl_tcp_frto && sk->sk_send_head &&
|
||||||
|
!after(TCP_SKB_CB(sk->sk_send_head)->end_seq,
|
||||||
|
tp->snd_una + tp->snd_wnd));
|
||||||
|
}
|
||||||
|
|
||||||
/* RTO occurred, but do not yet enter loss state. Instead, transmit two new
|
/* RTO occurred, but do not yet enter loss state. Instead, transmit two new
|
||||||
* segments to see from the next ACKs whether any data was really missing.
|
* segments to see from the next ACKs whether any data was really missing.
|
||||||
* If the RTO was spurious, new ACKs should arrive.
|
* If the RTO was spurious, new ACKs should arrive.
|
||||||
|
|
Loading…
Reference in New Issue