⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testvnet8.c

📁 嵌入式系统的网络仿真
💻 C
字号:
//------------------------------------------------------------------------------//test for skyeye function vnetif_init//test open device file /dev/net/vnet twice, first for hostif,second for guestif//test hif net device//test ioctl VNETSETIFF, and ifr_name=NULL//if ifr_name==NULL, then should use 'ifconfig vnet0 inet ......'//------------------------------------------------------------------------------#include <net/if.h>//#include <linux/if_tun.h>#include "if_vnet.h"#include <sys/ioctl.h>void main(void){int tapif_fd,tapif_fd2;struct ifreq ifr;char buf[1024],paddr[10];int flag;tapif_fd = open("/dev/net/vnet", 2);if(tapif_fd<0){ 	perror("open");exit(-1);};printf("open vnet ok! fd is %d\n",tapif_fd);memset(&ifr, 0, sizeof(ifr));//no need to set name, do it in vnet_hostif_create//I think when you want more vnet, then you should set //tht name for vnet.//IFNAMSIZ=16//strncpy(ifr.ifr_name, "vnet1", IFNAMSIZ);ifr.ifr_flags = IFF_VNET;if (ioctl(tapif_fd, VNETSETIFF, (void *) &ifr) < 0) {    perror(buf);    exit(-1);}printf("ioctl vnet ok\n");sleep(2);snprintf(buf, sizeof(buf), "ifconfig vnet0 inet %d.%d.%d.%d",           10,0,0,1);  printf("tapif_init: system(\"%s\");\n", buf);system(buf);tapif_fd2 = open("/dev/net/vnet", 2);if(tapif_fd2<0){ 	perror("open");exit(-1);};printf("open vnet ok! fd2 is %d\n",tapif_fd2);  //set mac addr for vnetpaddr[0]=0;paddr[1]=1;paddr[2]=2;paddr[3]=3;paddr[4]=4;paddr[5]=5;  if (ioctl(tapif_fd2, SIOCSIFADDR, (void *) paddr) < 0) {        printf("vnetif_init: set mac addr error\n");        exit(-1);  }  printf("vnetif_init: vnetif_init: set mac addr ok\n");  //set ifflag for vnet  flag=IFF_UP|IFF_RUNNING|IFF_BROADCAST;  if (ioctl(tapif_fd2, SIOCSIFFLAGS, (void *) &flag) < 0) {       printf("vnetif_init: ioctl vnet set ifflag error\n");        exit(-1);  }  printf("vnetif_init: ioctl vnet set ifflag ok.\n");while(1){ sleep(30);};//printf("input a key....\n");//getc();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -