18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _NET_IPCOMP_H
38c2ecf20Sopenharmony_ci#define _NET_IPCOMP_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <linux/types.h>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#define IPCOMP_SCRATCH_SIZE     65400
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cistruct crypto_comp;
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_cistruct ipcomp_data {
128c2ecf20Sopenharmony_ci	u16 threshold;
138c2ecf20Sopenharmony_ci	struct crypto_comp * __percpu *tfms;
148c2ecf20Sopenharmony_ci};
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_cistruct ip_comp_hdr;
178c2ecf20Sopenharmony_cistruct sk_buff;
188c2ecf20Sopenharmony_cistruct xfrm_state;
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciint ipcomp_input(struct xfrm_state *x, struct sk_buff *skb);
218c2ecf20Sopenharmony_ciint ipcomp_output(struct xfrm_state *x, struct sk_buff *skb);
228c2ecf20Sopenharmony_civoid ipcomp_destroy(struct xfrm_state *x);
238c2ecf20Sopenharmony_ciint ipcomp_init_state(struct xfrm_state *x);
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_cistatic inline struct ip_comp_hdr *ip_comp_hdr(const struct sk_buff *skb)
268c2ecf20Sopenharmony_ci{
278c2ecf20Sopenharmony_ci	return (struct ip_comp_hdr *)skb_transport_header(skb);
288c2ecf20Sopenharmony_ci}
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#endif
31