第一个:
ip link add link eth0 name eth0.6 type vlan id 6.
ifconfig eth0.6 198.19.24.96 netmask 255.255.0.0 broadcast 198.19.255.255 up
对于 VLAN 协议的 primo 字段,我使用以下方法:
1.vconfig set_forse_map 命令
ioctl 函数 SIOCSIFVLAN
3.使用 setsockopt 配置 SO_priority
上述3种方法提示 VLAN primo 提示成功、但使用独木舟接收 UDP 广播数据、发现 PRIO 始终为0。
代码:
1。
vconfig set_foreting_map eth0.6 6
2.
struct vlan_ioctl_args arg;
ARG.cmd = SET_VLAN_DE出_PRIORY_CMD;
arg.U.skb_priority = prio;
memcpy (arg.device1、"eth0.6"、strlen ("eth0.6"));
if (ioctl (socketfd、sIOCSIFVLAN、&arg)< 0){
printf ("[%s][%d]设置 SIOCSIFVLAN 错误\n");
}
3.
int prio = 6;
if (setsockopt (socketfd、SOL_socket、SO_priority、&prio、sizeof (prio))< 0)
{}