1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _NET_ESPINTCP_H
3 #define _NET_ESPINTCP_H
5 #include <net/strparser.h>
6 #include <linux/skmsg.h>
8 void __init
espintcp_init(void);
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
);
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 void (*saved_destruct
)(struct sock
*sk
);
29 struct work_struct work
;
33 static inline struct espintcp_ctx
*espintcp_getctx(const struct sock
*sk
)
35 struct inet_connection_sock
*icsk
= inet_csk(sk
);
37 /* RCU is only needed for diag */
38 return (__force
void *)icsk
->icsk_ulp_data
;