aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/tcp.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r--include/net/tcp.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 3c989db8a7aa..5f4eb5c79689 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -21,13 +21,13 @@
21#define TCP_DEBUG 1 21#define TCP_DEBUG 1
22#define FASTRETRANS_DEBUG 1 22#define FASTRETRANS_DEBUG 1
23 23
24#include <linux/config.h>
25#include <linux/list.h> 24#include <linux/list.h>
26#include <linux/tcp.h> 25#include <linux/tcp.h>
27#include <linux/slab.h> 26#include <linux/slab.h>
28#include <linux/cache.h> 27#include <linux/cache.h>
29#include <linux/percpu.h> 28#include <linux/percpu.h>
30#include <linux/skbuff.h> 29#include <linux/skbuff.h>
30#include <linux/dmaengine.h>
31 31
32#include <net/inet_connection_sock.h> 32#include <net/inet_connection_sock.h>
33#include <net/inet_timewait_sock.h> 33#include <net/inet_timewait_sock.h>
@@ -218,6 +218,7 @@ extern int sysctl_tcp_adv_win_scale;
218extern int sysctl_tcp_tw_reuse; 218extern int sysctl_tcp_tw_reuse;
219extern int sysctl_tcp_frto; 219extern int sysctl_tcp_frto;
220extern int sysctl_tcp_low_latency; 220extern int sysctl_tcp_low_latency;
221extern int sysctl_tcp_dma_copybreak;
221extern int sysctl_tcp_nometrics_save; 222extern int sysctl_tcp_nometrics_save;
222extern int sysctl_tcp_moderate_rcvbuf; 223extern int sysctl_tcp_moderate_rcvbuf;
223extern int sysctl_tcp_tso_win_divisor; 224extern int sysctl_tcp_tso_win_divisor;
@@ -225,6 +226,7 @@ extern int sysctl_tcp_abc;
225extern int sysctl_tcp_mtu_probing; 226extern int sysctl_tcp_mtu_probing;
226extern int sysctl_tcp_base_mss; 227extern int sysctl_tcp_base_mss;
227extern int sysctl_tcp_workaround_signed_windows; 228extern int sysctl_tcp_workaround_signed_windows;
229extern int sysctl_tcp_slow_start_after_idle;
228 230
229extern atomic_t tcp_memory_allocated; 231extern atomic_t tcp_memory_allocated;
230extern atomic_t tcp_sockets_allocated; 232extern atomic_t tcp_sockets_allocated;
@@ -293,6 +295,8 @@ extern int tcp_rcv_established(struct sock *sk,
293 295
294extern void tcp_rcv_space_adjust(struct sock *sk); 296extern void tcp_rcv_space_adjust(struct sock *sk);
295 297
298extern void tcp_cleanup_rbuf(struct sock *sk, int copied);
299
296extern int tcp_twsk_unique(struct sock *sk, 300extern int tcp_twsk_unique(struct sock *sk,
297 struct sock *sktw, void *twp); 301 struct sock *sktw, void *twp);
298 302
@@ -628,7 +632,7 @@ struct tcp_congestion_ops {
628 /* return slow start threshold (required) */ 632 /* return slow start threshold (required) */
629 u32 (*ssthresh)(struct sock *sk); 633 u32 (*ssthresh)(struct sock *sk);
630 /* lower bound for congestion window (optional) */ 634 /* lower bound for congestion window (optional) */
631 u32 (*min_cwnd)(struct sock *sk); 635 u32 (*min_cwnd)(const struct sock *sk);
632 /* do new cwnd calculation (required) */ 636 /* do new cwnd calculation (required) */
633 void (*cong_avoid)(struct sock *sk, u32 ack, 637 void (*cong_avoid)(struct sock *sk, u32 ack,
634 u32 rtt, u32 in_flight, int good_ack); 638 u32 rtt, u32 in_flight, int good_ack);
@@ -663,7 +667,7 @@ extern struct tcp_congestion_ops tcp_init_congestion_ops;
663extern u32 tcp_reno_ssthresh(struct sock *sk); 667extern u32 tcp_reno_ssthresh(struct sock *sk);
664extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, 668extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack,
665 u32 rtt, u32 in_flight, int flag); 669 u32 rtt, u32 in_flight, int flag);
666extern u32 tcp_reno_min_cwnd(struct sock *sk); 670extern u32 tcp_reno_min_cwnd(const struct sock *sk);
667extern struct tcp_congestion_ops tcp_reno; 671extern struct tcp_congestion_ops tcp_reno;
668 672
669static inline void tcp_set_ca_state(struct sock *sk, const u8 ca_state) 673static inline void tcp_set_ca_state(struct sock *sk, const u8 ca_state)
@@ -817,6 +821,12 @@ static inline void tcp_prequeue_init(struct tcp_sock *tp)
817 tp->ucopy.len = 0; 821 tp->ucopy.len = 0;
818 tp->ucopy.memory = 0; 822 tp->ucopy.memory = 0;
819 skb_queue_head_init(&tp->ucopy.prequeue); 823 skb_queue_head_init(&tp->ucopy.prequeue);
824#ifdef CONFIG_NET_DMA
825 tp->ucopy.dma_chan = NULL;
826 tp->ucopy.wakeup = 0;
827 tp->ucopy.pinned_list = NULL;
828 tp->ucopy.dma_cookie = 0;
829#endif
820} 830}
821 831
822/* Packet is added to VJ-style prequeue for processing in process 832/* Packet is added to VJ-style prequeue for processing in process