在我的ND守护程序中,我正在使用rbos_socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
接收用于接收NS和其他ND消息(l3
消息)的ICMPv6标头。
使用此选项,内核将剥离l2
头(带有VLAN信息)。我应该使用哪个选项来避免这种剥离?
我的目的是接收带有VLAN信息的ICMPv6消息。
已经尝试使用以下方法:
1)rbos_socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
2)rbos_socket(AF_INET6, SOCK_RAW, PROTO_ND)
我希望收到带有l2
信息(特别是VLAN标头)的ICMPv6消息。
答案 0 :(得分:0)
您不能像这样获得第一个VLAN标记。它确实已从数据包中剥离,但是在tp_vlan_tci
和tp_vlan_tpid
成员中可以带外使用,请参阅linux/if_packet.h
(假设在Linux上)。