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.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 9e88dcd5f134..5f4eb5c79689 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -27,6 +27,7 @@
27#include <linux/cache.h> 27#include <linux/cache.h>
28#include <linux/percpu.h> 28#include <linux/percpu.h>
29#include <linux/skbuff.h> 29#include <linux/skbuff.h>
30#include <linux/dmaengine.h>
30 31
31#include <net/inet_connection_sock.h> 32#include <net/inet_connection_sock.h>
32#include <net/inet_timewait_sock.h> 33#include <net/inet_timewait_sock.h>
@@ -217,6 +218,7 @@ extern int sysctl_tcp_adv_win_scale;
217extern int sysctl_tcp_tw_reuse; 218extern int sysctl_tcp_tw_reuse;
218extern int sysctl_tcp_frto; 219extern int sysctl_tcp_frto;
219extern int sysctl_tcp_low_latency; 220extern int sysctl_tcp_low_latency;
221extern int sysctl_tcp_dma_copybreak;
220extern int sysctl_tcp_nometrics_save; 222extern int sysctl_tcp_nometrics_save;
221extern int sysctl_tcp_moderate_rcvbuf; 223extern int sysctl_tcp_moderate_rcvbuf;
222extern int sysctl_tcp_tso_win_divisor; 224extern int sysctl_tcp_tso_win_divisor;
@@ -224,6 +226,7 @@ extern int sysctl_tcp_abc;
224extern int sysctl_tcp_mtu_probing; 226extern int sysctl_tcp_mtu_probing;
225extern int sysctl_tcp_base_mss; 227extern int sysctl_tcp_base_mss;
226extern int sysctl_tcp_workaround_signed_windows; 228extern int sysctl_tcp_workaround_signed_windows;
229extern int sysctl_tcp_slow_start_after_idle;
227 230
228extern atomic_t tcp_memory_allocated; 231extern atomic_t tcp_memory_allocated;
229extern atomic_t tcp_sockets_allocated; 232extern atomic_t tcp_sockets_allocated;
@@ -292,6 +295,8 @@ extern int tcp_rcv_established(struct sock *sk,
292 295
293extern void tcp_rcv_space_adjust(struct sock *sk); 296extern void tcp_rcv_space_adjust(struct sock *sk);
294 297
298extern void tcp_cleanup_rbuf(struct sock *sk, int copied);
299
295extern int tcp_twsk_unique(struct sock *sk, 300extern int tcp_twsk_unique(struct sock *sk,
296 struct sock *sktw, void *twp); 301 struct sock *sktw, void *twp);
297 302
@@ -627,7 +632,7 @@ struct tcp_congestion_ops {
627 /* return slow start threshold (required) */ 632 /* return slow start threshold (required) */
628 u32 (*ssthresh)(struct sock *sk); 633 u32 (*ssthresh)(struct sock *sk);
629 /* lower bound for congestion window (optional) */ 634 /* lower bound for congestion window (optional) */
630 u32 (*min_cwnd)(struct sock *sk); 635 u32 (*min_cwnd)(const struct sock *sk);
631 /* do new cwnd calculation (required) */ 636 /* do new cwnd calculation (required) */
632 void (*cong_avoid)(struct sock *sk, u32 ack, 637 void (*cong_avoid)(struct sock *sk, u32 ack,
633 u32 rtt, u32 in_flight, int good_ack); 638 u32 rtt, u32 in_flight, int good_ack);
@@ -662,7 +667,7 @@ extern struct tcp_congestion_ops tcp_init_congestion_ops;
662extern u32 tcp_reno_ssthresh(struct sock *sk); 667extern u32 tcp_reno_ssthresh(struct sock *sk);
663extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, 668extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack,
664 u32 rtt, u32 in_flight, int flag); 669 u32 rtt, u32 in_flight, int flag);
665extern u32 tcp_reno_min_cwnd(struct sock *sk); 670extern u32 tcp_reno_min_cwnd(const struct sock *sk);
666extern struct tcp_congestion_ops tcp_reno; 671extern struct tcp_congestion_ops tcp_reno;
667 672
668static 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)
@@ -816,6 +821,12 @@ static inline void tcp_prequeue_init(struct tcp_sock *tp)
816 tp->ucopy.len = 0; 821 tp->ucopy.len = 0;
817 tp->ucopy.memory = 0; 822 tp->ucopy.memory = 0;
818 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
819} 830}
820 831
821/* Packet is added to VJ-style prequeue for processing in process 832/* Packet is added to VJ-style prequeue for processing in process