tagging vde-2 version 2.3.2
[vde.git] / 2.3.2 / src / vdetaplib / test.c
blobb477ec64681deac20884fb09de1fecd6f00d5c6e
1 /* Copyright 2004 Renzo Davoli
2 * Reseased under the GPLv2 */
4 #include <stdio.h>
5 #include <fcntl.h>
6 #include <errno.h>
7 #include <string.h>
8 #include <unistd.h>
9 #include <sys/ioctl.h>
10 #include <net/if.h>
11 #include <linux/if_tun.h>
13 #include <config.h>
14 #include <vde.h>
15 #include <vdecommon.h>
17 static int tun_alloc(char *dev)
19 struct ifreq ifr;
20 int fd, err;
22 if( (fd = open("/dev/net/tun", O_RDWR)) < 0 )
23 return (-1);
25 memset(&ifr, 0, sizeof(ifr));
27 /* Flags: IFF_TUN - TUN device (no Ethernet headers)
28 * IFF_TAP - TAP device
30 * IFF_NO_PI - Do not provide packet information
31 */
32 ifr.ifr_flags = IFF_TAP;
33 if( *dev )
34 strncpy(ifr.ifr_name, dev, IFNAMSIZ);
36 if( (err = ioctl(fd, TUNSETIFF, (void *) &ifr)) < 0 ){
37 close(fd);
38 return err;
40 printf("ioctl returns\n");
41 strcpy(dev, ifr.ifr_name);
42 printf("ioctl idev\n");
43 return fd;
46 char interface[IFNAMSIZ]="tap0";
48 main()
50 tun_alloc(interface);
51 pause();