nl_sk = netlink_kernel_create(&init_net, netlink_TEST, 0, nl_data_ready, NULL, THIS_MODULE); nl_ck 总是为NULL。 个人目前认为应该是跟挂载点有关系 此挂载点是网桥下的挂载点,创建socket可以成功 static struct nf_hook_ops http_hooks = { .pf = PF_BRIDGE, //IPV4 协议 的 .priority = NF_BR_PRI_NAT_SRC + 1 , // NF_IP_PRI_FIRST, //NF_IP_PRI_LAST ;NF_IP_PRI_NAT_SRC ; .hooknum = NF_BR...
by Fart_King - 内核源码 - 2014-08-25 13:50:27 阅读(833) 回复(0)
代码如下,在模块初始化的时候,创建netlink失败。是什么原因造成的呢? 我的内核是2.6.22的。 static int __init netl_init(void) { printk("<1> netlink module init!\n"); sk = netlink_kernel_create(netlink_GENERIC, 0,recv_handler, NULL, THIS_MODULE); if(!sk) { printk("<1> failed to crea...
这个回调函数总是不调用 netlink_kernel_create()函数已经返回socket成功。 但挂载模块后 INPUT这个回调 总不调用。 代码: void input(struct sock *sk, int nlen) { printk("\n\nIs Enter CALLBACK FUNCTION \n"); if ( !p_content ) { printk("p_content is null \n"); return; } struct sk_buff *skb; struct nlmsghdr *nlh; u32 pid; int rc, err; int len = NLMSG_SPACE(1200); char str[100]; printk...
本帖最后由 tzyhpcom 于 2013-04-24 13:19 编辑 最近在研究netlink。内核是2.6.32-5。在内核模块中使用netlink_kernel_create函数时一直提示error: too few arguments to function netlink_kernel_create。我看到本机内核即2.6.32中头文件中的此函数定义是:[code]extern struct sock *netlink_kernel_create(struct net *net, int unit,unsigned int groups, ...
如题。kernel version 2.6.22-generic。在我用来实验的简单程序里没有问题。nl_sk = netlink_kernel_create(&init_net,netlink_TEST,0, testFunction,NULL, THIS_MODULE)。我已经在module header的netlilnk.h中添加了#define netlink_TEST 17。testFunction()只是简单地打印user space传到kernel的信息。可是当我用到真正的代码中的时候,每次创建socket都失败,甚至即使我的handler继续使用testFunction也不行。我想请问应该如何跟...
netlink_kernel_create注册的接收函数只有一个参数(在2.6.29的代码里,只有struct sk_buff* 这个参数), 但是我想传递别的参数给这个接收函数,请问该怎么办?
本帖最后由 jiufei19 于 2010-06-02 10:58 编辑 大家好,我按照CU中介绍的关于netlink原理的例子(netlink socket 编程之 why & how )在我本地机器上进行编译,我的内核版本2.6.23.1-42.fc8,在调用到netlink_kernel_create函数时,总是有如下警告,望各位赐教如何消除此警告: ----------------------------------------------------- netlink_k.c:19: 警告:函数声明不是一个原型 netlink_k.c: In function ‘netlink_test’...
struct sock * netlink_kernel_create(struct net *net, int unit, unsigned int groups, void (*input)(struct sk_buff *skb), struct mutex *cb_mutex, struct module *module) 新增加了net,unit,mutex 这三个参数是做什么用的? struct net 这个结构之前都没有见过
我现在用的linux内核版本比较高,之前看到用sock_release会死机,可是我现在用netlink_kernel_release卸载模块的时候也会死机,这是怎么回事啊,请各位专家帮忙看看,十分感谢!
linux-2.6.18.8/net/ipv4/uns_netlink_k.c:119: undefined reference to `sockfd_lookup_light' net/built-in.o: In function `init': /linux-2.6.18.8/net/ipv4/uns_netlink_k.c:216: undefined reference to `__this_module' /linux-2.6.18.8/net/ipv4/uns_netlink_k.c:216: undefined reference to `netlink_kernel_creat' …… else if(nlh->nlmsg_type == UNS_netlink_U_DATA) { write_lock_bh(&...
在该函数中,创建完sk后,,会将sk->sk-data-ready设为函数netlink-data-ready,而该函数实际是个bug()函数???请问咋回事呢?