#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(DGGSN, LOGL_ERROR, 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_ */
