Introduce a VTY, factually turning OpenGGSN into an Osmocom program

Change-Id: I9613ca3436e77ea132c47f0096df7c5050d7e826
diff --git a/lib/tun.c b/lib/tun.c
index e8368e5..76ac379 100644
--- a/lib/tun.c
+++ b/lib/tun.c
@@ -583,7 +583,7 @@
 	return tun_route(this, dst, gateway, mask, 1);
 }
 
-int tun_new(struct tun_t **tun)
+int tun_new(struct tun_t **tun, const char *dev_name)
 {
 
 #if defined(__linux__)
@@ -615,6 +615,8 @@
 	/* Set device flags. For some weird reason this is also the method
 	   used to obtain the network interface name */
 	memset(&ifr, 0, sizeof(ifr));
+	if (dev_name)
+		strcpy(ifr.ifr_name, dev_name);
 	ifr.ifr_flags = IFF_TUN | IFF_NO_PI;	/* Tun device, no packet info */
 	if (ioctl((*tun)->fd, TUNSETIFF, (void *)&ifr) < 0) {
 		SYS_ERR(DTUN, LOGL_ERROR, errno, "ioctl() failed");