如何改变网络设备操作table的安全性?

How to change network device operations table safety?

在 Linux 中,网络设备由结构 net_device 表示。此结构的字段之一是指向结构 net_device_ops 的指针,表示 table 网络设备操作。

我正在编写内核模块,它是网络数据包过滤器。 我怎样才能安全地替换那些 table(恐怕并发)?

我非常同意乔尔的回答。您最好尝试使用内核 netfiler API 来过滤流量。 netfilter API 在 Linux 内核网络堆栈中的数据包遍历的各个点提供了五个挂钩,您需要找出注册执行所需过滤的 callack 所需的挂钩。有时需要不止一个钩子。网上有关于它的文档。