在以太网帧中设置CoS(PCP,802.1P)

时间:2012-12-07 14:13:08

标签: c linux sockets

有什么方法可以从我的应用程序中操纵以太网帧中的优先级代码点(PCP)字段的值(例如使用setsockopt())?我想从头开始创建以太网帧,以避免低级别的攻击。<​​/ p>

我在手册页socket(7)ip(7)中进行了搜索,但没有选项来控制以太网帧字段。

如果这是相关的,我需要它用于TCP套接字。

2 个答案:

答案 0 :(得分:4)

您可以使用sockopt():

设置vlan优先级字段
int priority = 7;
setsockopt(sfd, SOL_SOCKET, SO_PRIORITY, &priority, sizeof(priority));

在文件net / 8021q / vlan_dev.c中,您可以看到,skb-&gt;优先级字段用于VLAN 802.1Q TCI ......

答案 1 :(得分:1)

每个VLAN设备都有入口和出口映射。例如:

vconfig add eth0 333
vconfig set_egress_map eth0.333 2 4
vconfig set_egress_map eth0.333 3 5
cat /proc/net/vlan/eth0.333

您可以在最后两行看到映射。