导出gre模块功能

时间:2014-08-19 05:41:58

标签: linux-kernel kernel kernel-module

我正在编写一个挂钩INET_PRE_ROUTING的Netfilter钩子函数。在这个钩子函数中,我想访问ipgre_tunnel_locate()中定义的ip_gre.c作为静态。在查看/proc/kallsyms时,ipgre_tunnel_locate()列出如下:

ffffffffa03acb30 t ipgre_tunnel_locate  [ip_gre]

上面的第二列暗示该函数是本地的和未导出的。我可以使用EXPORT_SYMBOL(ipgre_tunnel_locate)中的ip_gre.c so导出此函数,我可以在我的NetFilter prerouting挂钩函数中使用它吗? `

是否有任何强有力的理由说明默认情况下该函数未在内核中导出?

1 个答案:

答案 0 :(得分:0)

您可以导出该功能,但您的模块只能使用已修补的内核运行。

我认为,它不导出的原因很简单:这不是外部接口的一部分。例如,自3.10版本的内核以来,没有ipgre_tunnel_locate()

我应该再说一次,仅仅因为你需要它而导出符号并不是一种可靠的技术。