???????????????????????????????????????Netlink???????????????????nl_groups????????????潲??????????濴??????????????Netlink???
????4. ??? Netlink api
????4.1???? netlink socket
????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);
?????????????
????(1) net?????????????????namespace??????????????????????????????????????????????net_device?????????????????? init_net???????????
????(2) unit?????netlinkЭ?????????NETLINK_TEST??NETLINK_SELINUX??
????(3) groups?????????
????(4) input????????鶨???netlink?????????????????? ????????netlink socket?????input?????????????????д??????????????????sendmsg????????
????(5)  cb_mutex????????????????????????
????(6) module?? ????THIS_MODULE??
????4.2 ?????????? netlink_unicast
????int netlink_unicast(struct sock *ssk?? struct sk_buff *skb?? u32 pid?? int nonblock)
?????????????
????(1) ssk??????? netlink_kernel_create()?????socket??
????(2) skb??????????????data????????????netlink????????? skb?????鱣??????????????????NETLINK_CB(skb)???????????????顣
????(3) pid????????????????pid???????????????????????????????? 0??
????(4) nonblock??????ú???????????????????1???ú?????????н???????????????????????????0???ú???????н?????????????????
????4.3 ???????? netlink_broadcast
????int netlink_broadcast(struct sock *ssk?? struct sk_buff *skb?? u32 pid?? u32 group?? gfp_t allocation)
?????????????????? netlink_unicast?????????group????????????飬?ò?????????λ??????????飬?????????????????飬??ò?????????????????ID??λ??????allocation????????????????????GFP_ATOMIC??GFP_KERNEL??GFP_ATOMIC???????????????????????????????GFP_KERNEL???????????????
????4.4 ??? netlink socket
????int netlink_broadcast(struct sock *ssk?? struct sk_buff *skb?? u32 pid?? u32 group?? gfp_t allocation)
????5. ???????????
#include <linux/init.h>
#include <linux/module.h>
#include <linux/timer.h>
#include <linux/time.h>
#include <linux/types.h>
#include <net/sock.h>
#include <net/netlink.h>
#define NETLINK_TEST 25
#define MAX_MSGSIZE 1024
int stringlength(char *s);
int err;
struct sock *nl_sk = NULL;
int flag = 0;
//???????????????
void sendnlmsg(char *message?? int pid)
{
struct sk_buff *skb_1;
struct nlmsghdr *nlh;
int len = NLMSG_SPACE(MAX_MSGSIZE);
int slen = 0;
if(!message || !nl_sk)
{
return ;
}
printk(KERN_ERR "pid:%d "??pid);
skb_1 = alloc_skb(len??GFP_KERNEL);
if(!skb_1)
{
printk(KERN_ERR "my_net_link:alloc_skb error ");
}
slen = stringlength(message);
nlh = nlmsg_put(skb_1??0??0??0??MAX_MSGSIZE??0);
NETLINK_CB(skb_1).pid = 0;
NETLINK_CB(skb_1).dst_group = 0;
message[slen]= ' 主站蜘蛛池模板: 男女视频在线观看免费高清观看 | 视频二区肥岳精品推荐 | 精品女同一区二区三区在线观看 | 91久久天天躁狠狠躁夜夜 | 国产99视频精品免费视频7 | 午夜免费看 | 天天干妹子| 日韩精品在线看 | 亚洲欧美第一 | 97国产品香蕉在线观看 | 最近的中文字幕视频完整 | 中文字幕免费在线观看 | 欧美一区2区三区3区公司 | 香蕉久久久 | 黄色搞基网站 | 午夜五月天| 中国a毛片| 成在线人免费视频 | 国产精品久久久久网站 | 外国成人xxx在线视频 | 女同志videos最新另 | 国产精品视频第一区二区三区 | 日韩一区二区三区精品 | xxxx性日本 | 久久国产欧美 | 韩国成人在线视频 | 老司机亚洲精品 | h无遮挡成人漫画网站 | 国产精品免费视频能看 | 天天狠天天透天天伊人 | 日韩色网 | 亚洲欧美日本韩国 | 欧美性xxxx偷拍 | 国产精品偷伦视频免费观看的 | 521色香蕉网在线观看免费 | 国产黄色在线 | 国产成人精品福利站 | 日韩一区二区三区不卡 | 欧美日在线 | 激情四月婷婷 | 99久久国产综合精品麻豆 |