blob: ce579943cedebf08a5e4414469f6bc840126fce5 [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
Harald Weltee3c59182017-11-08 14:08:24 +090010int gtp_kernel_init(struct gsn_t *gsn, struct in46_prefix *prefix, const char *ipup);
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010011void gtp_kernel_stop(void);
12
13int gtp_kernel_tunnel_add(struct pdp_t *pdp);
14int gtp_kernel_tunnel_del(struct pdp_t *pdp);
15
16int gtp_kernel_enabled(void);
17
18#else
Harald Weltee3c59182017-11-08 14:08:24 +090019static inline int gtp_kernel_init(struct gsn_t *gsn, struct in46_prefix *prefix, const char *ipup)
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010020{
Harald Welte8ffd7fc2017-08-12 14:52:15 +020021 SYS_ERR(DGGSN, LOGL_ERROR, 0, "ggsn compiled without GTP kernel support!\n");
22 return -1;
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010023}
24
25static inline void gtp_kernel_stop(void) {}
26
27static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp)
28{
29 return 0;
30}
31
32static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp)
33{
34 return 0;
35}
36
37static inline int gtp_kernel_enabled(void)
38{
39 return 0;
40}
41
42#endif
43#endif /* _GTP_KERNEL_H_ */