diff options
Diffstat (limited to 'include/net/tcp.h')
| -rw-r--r-- | include/net/tcp.h | 29 | 
1 files changed, 23 insertions, 6 deletions
| diff --git a/include/net/tcp.h b/include/net/tcp.h index f80e74c5ad18..a80255f4ca33 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -240,9 +240,6 @@ extern int sysctl_tcp_timestamps;  extern int sysctl_tcp_window_scaling;  extern int sysctl_tcp_sack;  extern int sysctl_tcp_fin_timeout; -extern int sysctl_tcp_keepalive_time; -extern int sysctl_tcp_keepalive_probes; -extern int sysctl_tcp_keepalive_intvl;  extern int sysctl_tcp_syn_retries;  extern int sysctl_tcp_synack_retries;  extern int sysctl_tcp_retries1; @@ -1170,6 +1167,8 @@ void tcp_set_state(struct sock *sk, int state);  void tcp_done(struct sock *sk); +int tcp_abort(struct sock *sk, int err); +  static inline void tcp_sack_reset(struct tcp_options_received *rx_opt)  {  	rx_opt->dsack = 0; @@ -1223,17 +1222,23 @@ void tcp_enter_memory_pressure(struct sock *sk);  static inline int keepalive_intvl_when(const struct tcp_sock *tp)  { -	return tp->keepalive_intvl ? : sysctl_tcp_keepalive_intvl; +	struct net *net = sock_net((struct sock *)tp); + +	return tp->keepalive_intvl ? : net->ipv4.sysctl_tcp_keepalive_intvl;  }  static inline int keepalive_time_when(const struct tcp_sock *tp)  { -	return tp->keepalive_time ? : sysctl_tcp_keepalive_time; +	struct net *net = sock_net((struct sock *)tp); + +	return tp->keepalive_time ? : net->ipv4.sysctl_tcp_keepalive_time;  }  static inline int keepalive_probes(const struct tcp_sock *tp)  { -	return tp->keepalive_probes ? : sysctl_tcp_keepalive_probes; +	struct net *net = sock_net((struct sock *)tp); + +	return tp->keepalive_probes ? : net->ipv4.sysctl_tcp_keepalive_probes;  }  static inline u32 keepalive_time_elapsed(const struct tcp_sock *tp) @@ -1618,6 +1623,18 @@ static inline void tcp_highest_sack_combine(struct sock *sk,  		tcp_sk(sk)->highest_sack = new;  } +/* This helper checks if socket has IP_TRANSPARENT set */ +static inline bool inet_sk_transparent(const struct sock *sk) +{ +	switch (sk->sk_state) { +	case TCP_TIME_WAIT: +		return inet_twsk(sk)->tw_transparent; +	case TCP_NEW_SYN_RECV: +		return inet_rsk(inet_reqsk(sk))->no_srccheck; +	} +	return inet_sk(sk)->transparent; +} +  /* Determines whether this is a thin stream (which may suffer from   * increased latency). Used to trigger latency-reducing mechanisms.   */ | 
