1 /* Copyright 2002 Yon Uriarte and Jeff Dike
2 * Licensed under the GPL
3 * This file is part of the original uml_switch code
4 * Modified 2003 Renzo Davoli
12 #include <sys/ioctl.h>
14 #include <linux/if_tun.h>
17 void send_tap(int fd
, void *packet
, int len
, void *unused
)
21 n
= write(fd
, packet
, len
);
23 if(errno
!= EAGAIN
) perror("send_tap");
27 int open_tap(char *dev
)
32 if((fd
= open("/dev/net/tun", O_RDWR
)) < 0){
33 perror("Failed to open /dev/net/tun");
36 memset(&ifr
, 0, sizeof(ifr
));
37 ifr
.ifr_flags
= IFF_TAP
| IFF_NO_PI
;
38 strncpy(ifr
.ifr_name
, dev
, sizeof(ifr
.ifr_name
) - 1);
39 if(ioctl(fd
, TUNSETIFF
, (void *) &ifr
) < 0){
40 perror("TUNSETIFF failed");