Linux 内核 4.13-rc2 及更高版本中未找到 nf_register_hook

Linux 内核 4.13-rc2 及更高版本中未找到 nf_register_hook

我刚刚开始学习 netfilter,我试图制作一个简单的 netfilter 模块,所有教程和如何使用 注册钩子函数nf_register_hook(),但我在 4.13-rc1 以上的 Linux 内核中找不到一个。

据我了解,该nf_register_hook()函数用于调用_nf_register_hook()函数,该函数进一步调用nf_register_net_hook()函数,迭代net链表的每个成员,但对我来说有点难以理解。

随着该nf_register_hook()函数的消失,我正在解决如何注册钩子的问题。

nf_register_net_hook()功能仍然存在,但我不太确定它是如何工作的。

所以我的问题归结为,

如何在4.13-rc1以上的内核中注册netfilter钩子?

答案1

使用以下代码:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,13,0)
    nf_register_net_hook(&init_net, reg)
#else
    nf_register_hook(reg)
#endif

参考:初始化网络

相关内容