]>
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); | |
28 | struct work_struct work; | |
29 | bool tx_running; | |
30 | }; | |
31 | ||
32 | static inline struct espintcp_ctx *espintcp_getctx(const struct sock *sk) | |
33 | { | |
34 | struct inet_connection_sock *icsk = inet_csk(sk); | |
35 | ||
36 | /* RCU is only needed for diag */ | |
37 | return (__force void *)icsk->icsk_ulp_data; | |
38 | } | |
39 | #endif |