diff options
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r-- | include/net/tcp.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index f88f8a2cab0d..0448e7c5d2b4 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -245,6 +245,7 @@ extern long sysctl_tcp_mem[3]; | |||
245 | 245 | ||
246 | #define TCP_RACK_LOSS_DETECTION 0x1 /* Use RACK to detect losses */ | 246 | #define TCP_RACK_LOSS_DETECTION 0x1 /* Use RACK to detect losses */ |
247 | #define TCP_RACK_STATIC_REO_WND 0x2 /* Use static RACK reo wnd */ | 247 | #define TCP_RACK_STATIC_REO_WND 0x2 /* Use static RACK reo wnd */ |
248 | #define TCP_RACK_NO_DUPTHRESH 0x4 /* Do not use DUPACK threshold in RACK */ | ||
248 | 249 | ||
249 | extern atomic_long_t tcp_memory_allocated; | 250 | extern atomic_long_t tcp_memory_allocated; |
250 | extern struct percpu_counter tcp_sockets_allocated; | 251 | extern struct percpu_counter tcp_sockets_allocated; |
@@ -333,8 +334,7 @@ void tcp_write_timer_handler(struct sock *sk); | |||
333 | void tcp_delack_timer_handler(struct sock *sk); | 334 | void tcp_delack_timer_handler(struct sock *sk); |
334 | int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg); | 335 | int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg); |
335 | int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb); | 336 | int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb); |
336 | void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, | 337 | void tcp_rcv_established(struct sock *sk, struct sk_buff *skb); |
337 | const struct tcphdr *th); | ||
338 | void tcp_rcv_space_adjust(struct sock *sk); | 338 | void tcp_rcv_space_adjust(struct sock *sk); |
339 | int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp); | 339 | int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp); |
340 | void tcp_twsk_destructor(struct sock *sk); | 340 | void tcp_twsk_destructor(struct sock *sk); |
@@ -401,6 +401,10 @@ void tcp_set_keepalive(struct sock *sk, int val); | |||
401 | void tcp_syn_ack_timeout(const struct request_sock *req); | 401 | void tcp_syn_ack_timeout(const struct request_sock *req); |
402 | int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock, | 402 | int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock, |
403 | int flags, int *addr_len); | 403 | int flags, int *addr_len); |
404 | int tcp_set_rcvlowat(struct sock *sk, int val); | ||
405 | void tcp_data_ready(struct sock *sk); | ||
406 | int tcp_mmap(struct file *file, struct socket *sock, | ||
407 | struct vm_area_struct *vma); | ||
404 | void tcp_parse_options(const struct net *net, const struct sk_buff *skb, | 408 | void tcp_parse_options(const struct net *net, const struct sk_buff *skb, |
405 | struct tcp_options_received *opt_rx, | 409 | struct tcp_options_received *opt_rx, |
406 | int estab, struct tcp_fastopen_cookie *foc); | 410 | int estab, struct tcp_fastopen_cookie *foc); |
@@ -552,7 +556,12 @@ void tcp_fin(struct sock *sk); | |||
552 | void tcp_init_xmit_timers(struct sock *); | 556 | void tcp_init_xmit_timers(struct sock *); |
553 | static inline void tcp_clear_xmit_timers(struct sock *sk) | 557 | static inline void tcp_clear_xmit_timers(struct sock *sk) |
554 | { | 558 | { |
555 | hrtimer_cancel(&tcp_sk(sk)->pacing_timer); | 559 | if (hrtimer_try_to_cancel(&tcp_sk(sk)->pacing_timer) == 1) |
560 | __sock_put(sk); | ||
561 | |||
562 | if (hrtimer_try_to_cancel(&tcp_sk(sk)->compressed_ack_timer) == 1) | ||
563 | __sock_put(sk); | ||
564 | |||
556 | inet_csk_clear_xmit_timers(sk); | 565 | inet_csk_clear_xmit_timers(sk); |
557 | } | 566 | } |
558 | 567 | ||
@@ -809,9 +818,8 @@ struct tcp_skb_cb { | |||
809 | #endif | 818 | #endif |
810 | } header; /* For incoming skbs */ | 819 | } header; /* For incoming skbs */ |
811 | struct { | 820 | struct { |
812 | __u32 key; | ||
813 | __u32 flags; | 821 | __u32 flags; |
814 | struct bpf_map *map; | 822 | struct sock *sk_redir; |
815 | void *data_end; | 823 | void *data_end; |
816 | } bpf; | 824 | } bpf; |
817 | }; | 825 | }; |
@@ -1865,6 +1873,10 @@ void tcp_v4_init(void); | |||
1865 | void tcp_init(void); | 1873 | void tcp_init(void); |
1866 | 1874 | ||
1867 | /* tcp_recovery.c */ | 1875 | /* tcp_recovery.c */ |
1876 | void tcp_mark_skb_lost(struct sock *sk, struct sk_buff *skb); | ||
1877 | void tcp_newreno_mark_lost(struct sock *sk, bool snd_una_advanced); | ||
1878 | extern s32 tcp_rack_skb_timeout(struct tcp_sock *tp, struct sk_buff *skb, | ||
1879 | u32 reo_wnd); | ||
1868 | extern void tcp_rack_mark_lost(struct sock *sk); | 1880 | extern void tcp_rack_mark_lost(struct sock *sk); |
1869 | extern void tcp_rack_advance(struct tcp_sock *tp, u8 sacked, u32 end_seq, | 1881 | extern void tcp_rack_advance(struct tcp_sock *tp, u8 sacked, u32 end_seq, |
1870 | u64 xmit_time); | 1882 | u64 xmit_time); |
@@ -2095,4 +2107,12 @@ static inline bool tcp_bpf_ca_needs_ecn(struct sock *sk) | |||
2095 | #if IS_ENABLED(CONFIG_SMC) | 2107 | #if IS_ENABLED(CONFIG_SMC) |
2096 | extern struct static_key_false tcp_have_smc; | 2108 | extern struct static_key_false tcp_have_smc; |
2097 | #endif | 2109 | #endif |
2110 | |||
2111 | #if IS_ENABLED(CONFIG_TLS_DEVICE) | ||
2112 | void clean_acked_data_enable(struct inet_connection_sock *icsk, | ||
2113 | void (*cad)(struct sock *sk, u32 ack_seq)); | ||
2114 | void clean_acked_data_disable(struct inet_connection_sock *icsk); | ||
2115 | |||
2116 | #endif | ||
2117 | |||
2098 | #endif /* _TCP_H */ | 2118 | #endif /* _TCP_H */ |