Chinaunix

标题: netlink怎么与内核子模块通信的? [打印本页]

作者: cuer_2    时间: 2010-12-06 10:50
标题: netlink怎么与内核子模块通信的?
netlink是在用户与内核之间传递消息的
比如 获取IP地址什么的

比如 我在用户态通过netlink把获取ip地址的命令传给内核 然后交给内核执行 然后再返回回来
那么内核是如何获取netlink传递过来的信息的?把命令下发到具体的子模块中去?
主要是通过那个函数?请高手指教一下
作者: Godbach    时间: 2010-12-06 10:50
可以参考一下 IP Queue 的源码实现
        ipqnl = netlink_kernel_create(&init_net, NETLINK_FIREWALL, 0,
                                      ipq_rcv_skb, NULL, THIS_MODULE);

调用 netlink 接口时,会需要传递一个函数指针的,这个用来接收用户空间传来的消息
作者: Godbach    时间: 2010-12-06 11:24
如果你写的模块需要用 netlink,就需要定义自己的 netlink 消息类型,类似于上面的 NETLINK_FIREWALL
作者: cuer_2    时间: 2010-12-06 12:41
回复 2# Godbach


    谢谢 版主的指点




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2