diff --git a/tun.c b/tun.c
index 7ecbf2c..e2f1342 100644
--- a/tun.c
+++ b/tun.c
@@ -21,20 +21,19 @@
 #include <linux/if_tun.h>
 #include <string.h>
 #include <sys/ioctl.h>
-#include <sys/uio.h>
 #include <unistd.h>
 
 #include "common.h"
 
 /* function: tun_open
- * tries to open the tunnel device
+ * tries to open the tunnel device in non-blocking mode
  */
 int tun_open() {
   int fd;
 
-  fd = open("/dev/tun", O_RDWR | O_CLOEXEC);
+  fd = open("/dev/tun", O_RDWR | O_NONBLOCK | O_CLOEXEC);
   if (fd < 0) {
-    fd = open("/dev/net/tun", O_RDWR | O_CLOEXEC);
+    fd = open("/dev/net/tun", O_RDWR | O_NONBLOCK | O_CLOEXEC);
   }
 
   return fd;
@@ -65,25 +64,3 @@
   strlcpy(dev, ifr.ifr_name, len);
   return 0;
 }
-
-/* function: set_nonblocking
- * sets a filedescriptor to non-blocking mode
- * fd - the filedescriptor
- * returns: 0 on success, -1 on failure
- */
-int set_nonblocking(int fd) {
-  int flags = fcntl(fd, F_GETFL);
-  if (flags == -1) {
-    return flags;
-  }
-  return fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-}
-
-/* function: send_tun
- * sends a clat_packet to a tun interface
- * fd      - the tun filedescriptor
- * out     - the packet to send
- * iov_len - the number of entries in the clat_packet
- * returns: number of bytes read on success, -1 on failure
- */
-int send_tun(int fd, clat_packet out, int iov_len) { return writev(fd, out, iov_len); }
