blob: 62a0cd2883f8aa5475e61136a8dcf2170954526c [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 Welte698a2332017-11-08 15:09:58 +090010int gtp_kernel_init(struct gsn_t *gsn, const char *devname, struct in46_prefix *prefix, const char *ipup);
11void gtp_kernel_stop(const char *devname);
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010012
Harald Welte698a2332017-11-08 15:09:58 +090013int gtp_kernel_tunnel_add(struct pdp_t *pdp, const char *devname);
14int gtp_kernel_tunnel_del(struct pdp_t *pdp, const char *devname);
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010015
16int gtp_kernel_enabled(void);
17
18#else
Harald Welte698a2332017-11-08 15:09:58 +090019static inline int gtp_kernel_init(struct gsn_t *gsn, const char *devname, 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
Harald Welte698a2332017-11-08 15:09:58 +090025static inline void gtp_kernel_stop(const char *devname) {}
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010026
Harald Welte698a2332017-11-08 15:09:58 +090027static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp, const char *devname)
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010028{
29 return 0;
30}
31
Harald Welte698a2332017-11-08 15:09:58 +090032static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp, const char *devname)
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010033{
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_ */