blob: 34fd7bfe00729cfba9ba9d7908b34923ed68fec1 [file] [log] [blame]
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +01001#ifndef _GTP_KERNEL_H_
2#define _GTP_KERNEL_H_
3
4struct gengetopt_args_info;
5
6extern int debug;
7extern char *ipup;
8
9#ifdef GTP_KERNEL
10int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net,
Harald Welte8ffd7fc2017-08-12 14:52:15 +020011 size_t prefixlen, const char *net_arg);
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010012void gtp_kernel_stop(void);
13
14int gtp_kernel_tunnel_add(struct pdp_t *pdp);
15int gtp_kernel_tunnel_del(struct pdp_t *pdp);
16
17int gtp_kernel_enabled(void);
18
19#else
20static inline int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net,
Harald Welte8ffd7fc2017-08-12 14:52:15 +020021 size_t prefixlen, const char *net_arg)
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010022{
Harald Welte8ffd7fc2017-08-12 14:52:15 +020023 SYS_ERR(DGGSN, LOGL_ERROR, 0, "ggsn compiled without GTP kernel support!\n");
24 return -1;
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010025}
26
27static inline void gtp_kernel_stop(void) {}
28
29static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp)
30{
31 return 0;
32}
33
34static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp)
35{
36 return 0;
37}
38
39static inline int gtp_kernel_enabled(void)
40{
41 return 0;
42}
43
44#endif
45#endif /* _GTP_KERNEL_H_ */