aboutsummaryrefslogtreecommitdiffstats
path: root/ggsn/gtp-kernel.h
diff options
context:
space:
mode:
Diffstat (limited to 'ggsn/gtp-kernel.h')
-rw-r--r--ggsn/gtp-kernel.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/ggsn/gtp-kernel.h b/ggsn/gtp-kernel.h
new file mode 100644
index 0000000..7bf533d
--- /dev/null
+++ b/ggsn/gtp-kernel.h
@@ -0,0 +1,51 @@
+#ifndef _GTP_KERNEL_H_
+#define _GTP_KERNEL_H_
+
+struct gengetopt_args_info;
+
+extern int debug;
+extern char *ipup;
+
+#ifdef GTP_KERNEL
+int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net,
+ struct in_addr *mask,
+ struct gengetopt_args_info *args_info);
+void gtp_kernel_stop(void);
+
+int gtp_kernel_tunnel_add(struct pdp_t *pdp);
+int gtp_kernel_tunnel_del(struct pdp_t *pdp);
+
+int gtp_kernel_enabled(void);
+
+#else
+static inline int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net,
+ struct in_addr *mask,
+ struct gengetopt_args_info *args_info)
+{
+ if (args_info->gtpnl_given) {
+ sys_err(LOG_ERR, __FILE__, __LINE__, 0,
+ "ggsn compiled without GTP kernel support!\n");
+ return -1;
+ }
+ return 0;
+}
+
+static inline void gtp_kernel_stop(void) {}
+
+static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp)
+{
+ return 0;
+}
+
+static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp)
+{
+ return 0;
+}
+
+static inline int gtp_kernel_enabled(void)
+{
+ return 0;
+}
+
+#endif
+#endif /* _GTP_KERNEL_H_ */