在Linux中,网络设备由struct net_device提供。这个结构的一个字段是指向struct net_device_ops的指针,它表示网络设备操作表。
我正在编写内核模块,它是网络数据包过滤器。 我怎样才能安全地替换那些表(我害怕并发)?
答案 0 :(得分:0)
我非常同意乔尔的回答。您最好尝试使用内核netfiler API来过滤流量。 netfilter API在Linux内核网络堆栈中沿着数据包遍历的各个点提供五个挂钩,您需要找出注册将执行所需过滤的callack所需的一个。有时需要多个钩子。网上有关于它的文档。