#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, const char *devname, struct in46_prefix *prefix, const char *ipup);
void gtp_kernel_stop(const char *devname);

int gtp_kernel_tunnel_add(struct pdp_t *pdp, const char *devname);
int gtp_kernel_tunnel_del(struct pdp_t *pdp, const char *devname);

#else
static inline int gtp_kernel_init(struct gsn_t *gsn, const char *devname, struct in46_prefix *prefix, const char *ipup)
{
	SYS_ERR(DGGSN, LOGL_ERROR, 0, "ggsn compiled without GTP kernel support!\n");
	return -1;
}

static inline void gtp_kernel_stop(const char *devname) {}

static inline int gtp_kernel_tunnel_add(struct pdp_t *pdp, const char *devname)
{
	return 0;
}

static inline int gtp_kernel_tunnel_del(struct pdp_t *pdp, const char *devname)
{
	return 0;
}

#endif
#endif /* _GTP_KERNEL_H_ */
