[MERGED] openggsn[master]: gtp-kernel: Remove dependency to cmdline.[ch]

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Tue Sep 5 21:06:04 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: gtp-kernel: Remove dependency to cmdline.[ch]
......................................................................


gtp-kernel: Remove dependency to cmdline.[ch]

Change-Id: I760f25df609c309eba4d5716f3e23b49320449bf
---
M ggsn/ggsn.c
M ggsn/gtp-kernel.c
M ggsn/gtp-kernel.h
3 files changed, 14 insertions(+), 21 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 1e92956..c82f630 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -710,8 +710,12 @@
 		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 @@
 #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 @@
 	}
 
 	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 @@
 
 		/* 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 @@
 
 #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 @@
 
 #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) {}

-- 
To view, visit https://gerrit.osmocom.org/3835
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I760f25df609c309eba4d5716f3e23b49320449bf
Gerrit-PatchSet: 3
Gerrit-Project: openggsn
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list