Only in linux/Documentation/networking: ethertap.txt
Only in linux-tun/Documentation/networking: tun.txt
diff -u -r linux/drivers/net/Config.in linux-tun/drivers/net/Config.in
--- linux/drivers/net/Config.in	Fri Nov  5 22:19:40 1999
+++ linux-tun/drivers/net/Config.in	Fri Nov  5 22:27:32 1999
@@ -19,11 +19,6 @@
 
 tristate 'Dummy net driver support' CONFIG_DUMMY
 tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER
-if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-   if [ "$CONFIG_NETLINK" = "y" ]; then
-      tristate 'Ethertap network tap (EXPERIMENTAL)' CONFIG_ETHERTAP
-   fi
-fi
 
 tristate 'General Instruments Surfboard 1000' CONFIG_NET_SB1000
 
@@ -257,3 +252,9 @@
 if [ "$CONFIG_PCMCIA" != "n" ]; then
    source drivers/net/pcmcia/Config.in
 fi
+
+#
+# Universal TUN/TAP driver
+#
+tristate 'Universal TUN/TAP device driver' CONFIG_TUN
+
diff -u -r linux/drivers/net/Makefile linux-tun/drivers/net/Makefile
--- linux/drivers/net/Makefile	Fri Nov  5 22:19:40 1999
+++ linux-tun/drivers/net/Makefile	Fri Nov  5 22:26:17 1999
@@ -56,14 +56,6 @@
 L_OBJS += seeq8005.o
 endif
 
-ifeq ($(CONFIG_ETHERTAP),y)
-L_OBJS += ethertap.o
-else
-  ifeq ($(CONFIG_ETHERTAP),m)
-  M_OBJS += ethertap.o
-  endif
-endif
-
 ifeq ($(CONFIG_NET_SB1000),y)
 L_OBJS += sb1000.o
 else
@@ -1101,6 +1093,17 @@
   endif
 endif
 
+#
+# Universal TUN/TAP driver
+#
+ifeq ($(CONFIG_TUN),y)
+L_OBJS += tun.o
+else
+  ifeq ($(CONFIG_TUN),m)
+  M_OBJS += tun.o
+  endif
+endif
+  
 include $(TOPDIR)/Rules.make
 
 clean:
diff -u -r linux/drivers/net/Space.c linux-tun/drivers/net/Space.c
--- linux/drivers/net/Space.c	Fri Nov  5 22:19:23 1999
+++ linux-tun/drivers/net/Space.c	Fri Nov  5 22:23:03 1999
@@ -633,13 +633,6 @@
 }
 #endif  /* CONFIG_NET_FC */
 
-
-#ifdef CONFIG_ETHERTAP
-    static struct net_device tap0_dev = { "tap0" __PAD4, 0, 0, 0, 0, NETLINK_TAPBASE, 0, 0, 0, 0, NEXT_DEV, ethertap_probe, };
-#   undef NEXT_DEV
-#   define NEXT_DEV	(&tap0_dev)
-#endif
-
 #ifdef CONFIG_SDLA
     extern int sdla_init(struct net_device *);
     static struct net_device sdla0_dev = { "sdla0" __PAD5, 0, 0, 0, 0, 0, 0, 0, 0, 0, NEXT_DEV, sdla_init, };
@@ -924,7 +917,15 @@
 #   undef       NEXT_DEV
 #   define      NEXT_DEV        (&sb1000_dev)
 #endif
-	
+
+#ifdef CONFIG_TUN
+    extern int tun_init(struct net_device *dev);
+    static struct net_device tun_dev = {
+        "tun", 0, 0, 0, 0, 0, 0, 0, 0, 0, NEXT_DEV, tun_init };
+#   undef       NEXT_DEV
+#   define      NEXT_DEV        (&tun_dev)
+#endif
+
 extern int loopback_init(struct net_device *dev);
 struct net_device loopback_dev = {
 	"lo" __PAD2,		/* Software Loopback interface		*/
Only in linux/drivers/net: ethertap.c
Only in linux-tun/drivers/net: tun.c
Only in linux-tun/include/linux: if_tun.h
diff -u -r linux/include/linux/major.h linux-tun/include/linux/major.h
--- linux/include/linux/major.h	Fri Nov  5 22:19:40 1999
+++ linux-tun/include/linux/major.h	Fri Nov  5 22:23:03 1999
@@ -120,6 +120,12 @@
 #define RTF_MAJOR	150
 #define RAW_MAJOR	162
 
+/*
+ * TUN/TAP device
+ */
+
+#define TUN_MAJOR 90
+
 #define UNIX98_PTY_MASTER_MAJOR	128
 #define UNIX98_PTY_MAJOR_COUNT	8
 #define UNIX98_PTY_SLAVE_MAJOR	(UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)
diff -u -r linux/include/linux/netlink.h linux-tun/include/linux/netlink.h
--- linux/include/linux/netlink.h	Thu Aug 27 22:33:08 1998
+++ linux-tun/include/linux/netlink.h	Fri Nov  5 22:23:03 1999
@@ -8,7 +8,6 @@
 #define NETLINK_ARPD		8
 #define NETLINK_ROUTE6		11	/* af_inet6 route comm channel */
 #define NETLINK_IP6_FW		13
-#define NETLINK_TAPBASE		16	/* 16 to 31 are ethertap */
 
 #define MAX_LINKS 32		
 
diff -u -r linux/net/Config.in linux-tun/net/Config.in
--- linux/net/Config.in	Fri Nov  5 22:19:29 1999
+++ linux-tun/net/Config.in	Fri Nov  5 22:28:43 1999
@@ -10,7 +10,6 @@
 bool 'Kernel/User netlink socket' CONFIG_NETLINK
 if [ "$CONFIG_NETLINK" = "y" ]; then
    bool '  Routing messages' CONFIG_RTNETLINK
-   tristate '  Netlink device emulation' CONFIG_NETLINK_DEV
 fi
 bool 'Network packet filtering (replaces ipchains)' CONFIG_NETFILTER
 if [ "$CONFIG_NETFILTER" = "y" ]; then
diff -u -r linux/net/netlink/Makefile linux-tun/net/netlink/Makefile
--- linux/net/netlink/Makefile	Sun Nov 30 17:00:40 1997
+++ linux-tun/net/netlink/Makefile	Fri Nov  5 22:23:03 1999
@@ -15,12 +15,4 @@
 
 M_OBJS :=
 
-ifeq ($(CONFIG_NETLINK_DEV), y)
-  O_OBJS += netlink_dev.o
-endif
-
-ifeq ($(CONFIG_NETLINK_DEV), m)
-  M_OBJS += netlink_dev.o
-endif
-
 include $(TOPDIR)/Rules.make
Only in linux/net/netlink: netlink_dev.c
