ggsn: don't use gtp_kernel_tunnel_{add,del}() for userspace tun

Change-Id: I00cc8eb8c4d44532f975f78783ff4e12814b3416
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 4636c04..72bf61c 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -380,9 +380,11 @@
 			LOGPPDP(LOGL_ERROR, pdp, "Cannot find/free IP Pool member\n");
 	}
 
-	if (gtp_kernel_tunnel_del(pdp, apn->tun.cfg.dev_name)) {
-		LOGPPDP(LOGL_ERROR, pdp, "Cannot delete tunnel from kernel:%s\n",
-			strerror(errno));
+	if (apn->cfg.gtpu_mode == APN_GTPU_MODE_KERNEL_GTP) {
+		if (gtp_kernel_tunnel_del(pdp, apn->tun.cfg.dev_name)) {
+			LOGPPDP(LOGL_ERROR, pdp, "Cannot delete tunnel from kernel:%s\n",
+				strerror(errno));
+		}
 	}
 
 	return 0;
@@ -688,7 +690,7 @@
 
 	in46a_to_eua(addr, num_addr, &pdp->eua);
 
-	if (apn_supports_ipv4(apn)) {
+	if (apn->cfg.gtpu_mode == APN_GTPU_MODE_KERNEL_GTP && apn_supports_ipv4(apn)) {
 		/* TODO: In IPv6, EUA doesn't contain the actual IP addr/prefix! */
 		if (gtp_kernel_tunnel_add(pdp, apn->tun.cfg.dev_name) < 0) {
 			LOGPPDP(LOGL_ERROR, pdp, "Cannot add tunnel to kernel: %s\n", strerror(errno));