1,本来打算是用NETLINK 套接口机制实现创建/添加VLAN 的,但是没有成功。NETLINK帮组文档中:RTM_NEWLINK - Create a new network interface说得很清楚是可以创建新的网络接口的,但是本人水品有限,对代码修改了很多遍尝试很多可能,花了大量时间最终没有成功,真失败呀,不知哪里出了问题,有高人了解指点下感激不尽。最后考虑用ioctl来实现,如此简单,真是得来全部费功夫。
2,哈哈,废话不多说看代码。
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <linux/if_vlan.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <linux/sockios.h>
int main(int argc ,char **argv){
int fd;
struct vlan_ioctl_args if_request; //定义vlan参数的结构体变量,这结构体包括接口名,vlan ID等参数
char *if_name;
int vid;
if(argc!=4){
printf("usage:%s add eth* vlanID\n",argv[0]);
exi