]>
Commit | Line | Data |
---|---|---|
e27cca96 SD |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _NET_ESPINTCP_H | |
3 | #define _NET_ESPINTCP_H | |
4 | ||
5 | #include <net/strparser.h> | |
6 | #include <linux/skmsg.h> | |
7 | ||
8 | void __init espintcp_init(void); | |
9 | ||
10 | int espintcp_push_skb(struct sock *sk, struct sk_buff *skb); | |
11 | int espintcp_queue_out(struct sock *sk, struct sk_buff *skb); | |
12 | bool tcp_is_ulp_esp(struct sock *sk); | |
13 | ||
14 | struct espintcp_msg { | |
15 | struct sk_buff *skb; | |
16 | struct sk_msg skmsg; | |
17 | int offset; | |
18 | int len; | |
19 | }; | |
20 | ||
21 | struct espintcp_ctx { | |
22 | struct strparser strp; | |
23 | struct sk_buff_head ike_queue; | |
24 | struct sk_buff_head out_queue; | |
25 | struct espintcp_msg partial; | |
26 | void (*saved_data_ready)(struct sock *sk); | |
27 | void (*saved_write_space)(struct sock *sk); | |
9f0cadc3 | 28 | void (*saved_destruct)(struct sock *sk); |
e27cca96 SD |
29 | struct work_struct work; |
30 | bool tx_running; | |
31 | }; | |
32 | ||
33 | static inline struct espintcp_ctx *espintcp_getctx(const struct sock *sk) | |
34 | { | |
35 | struct inet_connection_sock *icsk = inet_csk(sk); | |
36 | ||
37 | /* RCU is only needed for diag */ | |
38 | return (__force void *)icsk->icsk_ulp_data; | |
39 | } | |
40 | #endif |