blob: e2da55a058795dd94aeb7bd6c08746c2dd1bc2c5 [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
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010016#else
Harald Welte698a2332017-11-08 15:09:58 +090017static 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 +010018{
Harald Welte8ffd7fc2017-08-12 14:52:15 +020019 SYS_ERR(DGGSN, LOGL_ERROR, 0, "ggsn compiled without GTP kernel support!\n");
20 return -1;
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010021}
22
Harald Welte698a2332017-11-08 15:09:58 +090023static inline void gtp_kernel_stop(const char *devname) {}
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010024
Harald Welte698a2332017-11-08 15:09:58 +090025static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp, const char *devname)
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010026{
27 return 0;
28}
29
Harald Welte698a2332017-11-08 15:09:58 +090030static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp, const char *devname)
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010031{
32 return 0;
33}
34
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010035#endif
36#endif /* _GTP_KERNEL_H_ */