我正在编写一个相当复杂的软件,用于几乎专有的第 2 层以太网。系统真的很精简——内核没有文件系统,没有IP堆栈(是的,只有以太网驱动程序和CONFIG_PACKET
——我实现了基本的ARP和IP,没有碎片,没有路由表等)。我使用 捕获和发送数据包PACKET_MMAP
,它运行得非常好。
我有一个小问题。我很想捕获并发出 VLAN 标记和未标记的数据包。vconfig和朋友使用的 IOCTL为每个 vlan 创建新的虚拟以太网设备。我不需要这样的功能——我只需要一个包罗万象的一面,另一面按原样发射。
这可能通过给NIC一个正确的打击来实现。我浏览了源代码(我有双 VIA Velocity 板载),没有发现关于如何杀死 VLAN 过滤器的任何线索。