diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-08-12 14:52:15 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-08-12 22:53:59 +0200 |
commit | 1b731746fda2e8949c1d38dca45ad03fd0d3ab4a (patch) | |
tree | 5590eb175455870fc29836d33c951c4c3c96077c | |
parent | 54d082e5e8a3bd45a46dde1162015954b9047f69 (diff) |
gtp-kernel: Remove dependency to cmdline.[ch]
Change-Id: I760f25df609c309eba4d5716f3e23b49320449bf
-rw-r--r-- | ggsn/ggsn.c | 8 | ||||
-rw-r--r-- | ggsn/gtp-kernel.c | 13 | ||||
-rw-r--r-- | ggsn/gtp-kernel.h | 14 |
3 files changed, 14 insertions, 21 deletions
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index c6a6dac..1b7911c 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -710,8 +710,12 @@ int main(int argc, char **argv) maxfd = gsn->fd1u; /* use GTP kernel module for data packet encapsulation */ - if (gtp_kernel_init(gsn, &net.v4, prefixlen, &args_info) < 0) - goto err; + if (args_info.gtp_linux_given) { + if (gtp_kernel_init(gsn, &net.v4, prefixlen, args_info.net_arg) < 0) { + SYS_ERR(DGGSN, LOGL_ERROR, 0, "Failed to initialize kernel GTP\n"); + goto err; + } + } gtp_set_cb_data_ind(gsn, encaps_tun); gtp_set_cb_delete_context(gsn, delete_context); diff --git a/ggsn/gtp-kernel.c b/ggsn/gtp-kernel.c index 458ac27..f98586d 100644 --- a/ggsn/gtp-kernel.c +++ b/ggsn/gtp-kernel.c @@ -27,7 +27,6 @@ #include "../lib/syserr.h" #include "../gtp/pdp.h" #include "../gtp/gtp.h" -#include "cmdline.h" #include <libgtpnl/gtp.h> #include <libgtpnl/gtpnl.h> @@ -80,12 +79,8 @@ static struct { #define GTP_DEVNAME "gtp0" int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net, - size_t prefixlen, - struct gengetopt_args_info *args_info) + size_t prefixlen, const char *net_arg) { - if (!args_info->gtp_linux_given) - return 0; - if (gtp_dev_create(-1, GTP_DEVNAME, gsn->fd0, gsn->fd1u) < 0) { SYS_ERR(DGGSN, LOGL_ERROR, 0, "cannot create GTP tunnel device: %s\n", @@ -113,12 +108,12 @@ int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net, } DEBUGP(DGGSN, "Setting route to reach %s via %s\n", - args_info->net_arg, GTP_DEVNAME); + net_arg, GTP_DEVNAME); if (gtp_dev_config(GTP_DEVNAME, net, prefixlen) < 0) { SYS_ERR(DGGSN, LOGL_ERROR, 0, "Cannot add route to reach network %s\n", - args_info->net_arg); + net_arg); } /* launch script if it is set to bring up the route to reach @@ -132,7 +127,7 @@ int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net, /* eg. /home/ggsn/ipup gtp0 10.0.0.0/8 */ snprintf(cmd, sizeof(cmd), "%s %s %s", - ipup, GTP_DEVNAME, args_info->net_arg); + ipup, GTP_DEVNAME, net_arg); cmd[sizeof(cmd)-1] = '\0'; err = system(cmd); diff --git a/ggsn/gtp-kernel.h b/ggsn/gtp-kernel.h index b3b29e3..34fd7bf 100644 --- a/ggsn/gtp-kernel.h +++ b/ggsn/gtp-kernel.h @@ -8,8 +8,7 @@ extern char *ipup; #ifdef GTP_KERNEL int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net, - size_t prefixlen, - struct gengetopt_args_info *args_info); + size_t prefixlen, const char *net_arg); void gtp_kernel_stop(void); int gtp_kernel_tunnel_add(struct pdp_t *pdp); @@ -19,15 +18,10 @@ int gtp_kernel_enabled(void); #else static inline int gtp_kernel_init(struct gsn_t *gsn, struct in_addr *net, - size_t prefixlen, - struct gengetopt_args_info *args_info) + size_t prefixlen, const char *net_arg) { - if (args_info->gtp_linux_given) { - SYS_ERR(DGGSN, LOGL_ERROR, 0, - "ggsn compiled without GTP kernel support!\n"); - return -1; - } - return 0; + SYS_ERR(DGGSN, LOGL_ERROR, 0, "ggsn compiled without GTP kernel support!\n"); + return -1; } static inline void gtp_kernel_stop(void) {} |