blob: b3b29e3fd7e0bfa24997a55baef50d05a3f79a96 [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 Welted12eab92017-08-02 19:49:47 +020011 size_t prefixlen,
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010012 struct gengetopt_args_info *args_info);
13void gtp_kernel_stop(void);
14
15int gtp_kernel_tunnel_add(struct pdp_t *pdp);
16int gtp_kernel_tunnel_del(struct pdp_t *pdp);
17
18int gtp_kernel_enabled(void);
19
20#else
21static inline int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net,
Harald Welted12eab92017-08-02 19:49:47 +020022 size_t prefixlen,
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010023 struct gengetopt_args_info *args_info)
24{
Pablo Neira Ayuso176e8952016-05-12 16:54:03 +020025 if (args_info->gtp_linux_given) {
Andreas Schultzc5fbf9b2015-11-17 12:22:43 +010026 SYS_ERR(DGGSN, LOGL_ERROR, 0,
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010027 "ggsn compiled without GTP kernel support!\n");
28 return -1;
29 }
30 return 0;
31}
32
33static inline void gtp_kernel_stop(void) {}
34
35static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp)
36{
37 return 0;
38}
39
40static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp)
41{
42 return 0;
43}
44
45static inline int gtp_kernel_enabled(void)
46{
47 return 0;
48}
49
50#endif
51#endif /* _GTP_KERNEL_H_ */