1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _CONNTRACK_PROTO_GRE_H
3#define _CONNTRACK_PROTO_GRE_H
4#include <asm/byteorder.h>
5#include <net/gre.h>
6#include <net/pptp.h>
7
8struct nf_ct_gre {
9 unsigned int stream_timeout;
10 unsigned int timeout;
11};
12
13#ifdef __KERNEL__
14#include <net/netfilter/nf_conntrack_tuple.h>
15
16struct nf_conn;
17
18/* structure for original <-> reply keymap */
19struct nf_ct_gre_keymap {
20 struct list_head list;
21 struct nf_conntrack_tuple tuple;
22 struct rcu_head rcu;
23};
24
25/* add new tuple->key_reply pair to keymap */
26int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir,
27 struct nf_conntrack_tuple *t);
28
29void nf_ct_gre_keymap_flush(struct net *net);
30/* delete keymap entries */
31void nf_ct_gre_keymap_destroy(struct nf_conn *ct);
32
33bool gre_pkt_to_tuple(const struct sk_buff *skb, unsigned int dataoff,
34 struct net *net, struct nf_conntrack_tuple *tuple);
35#endif /* __KERNEL__ */
36#endif /* _CONNTRACK_PROTO_GRE_H */
37