在我的 ND 守护进程中,我使用 rbos_socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
接收用于接收 NS 和其他 ND 消息( l3
消息)的 ICMPv6 header 。
使用此选项内核将剥离 l2
header (带有 VLAN 信息)。我应该使用哪个选项来避免这种剥离?
我的目的是接收带有 VLAN 信息的 ICMPv6 消息。
已经尝试使用以下方法:
1) rbos_socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
2) rbos_socket(AF_INET6, SOCK_RAW, PROTO_ND)
我的期望是接收带有 l2
的 ICMPv6 消息信息(特别是 VLAN header )。
最佳答案
这样你无法获得第一个 VLAN 标记。它确实从数据包中剥离,但它可以在 tp_vlan_tci
中带外使用。和tp_vlan_tpid
成员(member),请参阅linux/if_packet.h
(假设这是在 Linux 上)。
关于c - 如何使用 ICMPv6 套接字接收 vlan header /l2 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56311122/