0

在我的 ND 守护程序中,我使用rbos_socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);接收 ICMPv6 标头来接收 NS 和其他 ND 消息(l3消息)。使用此选项,内核将剥离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 消息。

4

1 回答 1

0

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

于 2019-05-26T12:42:43.877 回答