xref: /openbmc/linux/include/net/esp.h (revision efe4a1ac)
1 #ifndef _NET_ESP_H
2 #define _NET_ESP_H
3 
4 #include <linux/skbuff.h>
5 
6 struct ip_esp_hdr;
7 
8 static inline struct ip_esp_hdr *ip_esp_hdr(const struct sk_buff *skb)
9 {
10 	return (struct ip_esp_hdr *)skb_transport_header(skb);
11 }
12 
13 struct esp_info {
14 	struct	ip_esp_hdr *esph;
15 	__be64	seqno;
16 	int	tfclen;
17 	int	tailen;
18 	int	plen;
19 	int	clen;
20 	int 	len;
21 	int 	nfrags;
22 	__u8	proto;
23 	bool	inplace;
24 };
25 
26 int esp_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);
27 int esp_output_tail(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);
28 int esp_input_done2(struct sk_buff *skb, int err);
29 int esp6_output_head(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);
30 int esp6_output_tail(struct xfrm_state *x, struct sk_buff *skb, struct esp_info *esp);
31 int esp6_input_done2(struct sk_buff *skb, int err);
32 #endif
33