如何使用ICMPv6套接字接收vlan标头/ l2标头

时间:2019-05-26 06:13:10

标签: c network-programming icmp icmpv6

在我的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消息。

1 个答案:

答案 0 :(得分:0)

您不能像这样获得第一个VLAN标记。它确实已从数据包中剥离,但是在tp_vlan_tcitp_vlan_tpid成员中可以带外使用,请参阅linux/if_packet.h(假设在Linux上)。