消息的接收和发送
内核代码
#include <net/genetlink.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
enum {
CTRL_ATTR_UNDE,
CTRL_ATTR_ID,
CTRL_ATTR_AUDIT,
__CTRL_ATTR_MAX_TEST,
};
#define CTRL_ATTR_MAX_TEST (__CTRL_ATTR_MAX_TEST - 1)
struct genl_family test_ctl = {
.id=1023,
.name="testnet",
.version=1,
.maxattr=CTRL_ATTR_MAX_TEST,
.netnsok = true
};
static const struct nla_policy test_ctrl_policy[CTRL_ATTR_MAX_TEST+1] =
{
[CTRL_ATTR_ID] = { .type = NLA_U16 },
[CTRL_ATTR_AUDIT] = { .type = NLA_NUL_STRING,.len = 100},
};
int test_ctl_function(struct sk_buff *skb, struct genl_info *info)
{
struct sk_buff *skbuff = NULL;
char *strmsg;
void *hdr;
int msg_size ;
printk("get process pid=%d cmd=%d pid=%d type=%d len=%d\n",info->s