我正在编写一个相当精细的软件,在几乎独占的第2层以太网上工作。系统真的被削减了 - 内核没有文件系统,没有IP堆栈(是的,只有以太网驱动程序和CONFIG_PACKET
- 我实现了基本的ARP和IP,没有碎片,没有路由表等)。我使用PACKET_MMAP
捕获并发送数据包,它的工作原理很好。
我有一个小问题。我喜欢捕获和发送VLAN标记和未标记的数据包。 vconfig 和朋友使用的IOCTL为每个vlan创建新的虚拟以太网设备。我不需要这样的功能 - 我只需要一边是 catch-all 而另一边需要 emit-as-is 。
这可能是通过给 NIC 一个正确的打击来实现的。我浏览了源代码(我有两个VIA Velocity板载),没有发现如何杀死VLAN过滤器的线索。