From 0a1d170e7af33b0c3987e021394fed7f671bc271 Mon Sep 17 00:00:00 2001 From: gechangwei Date: Fri, 28 Jun 2019 15:08:54 +0800 Subject: [PATCH] =?UTF-8?q?MOD=20aaa-12=20netlink=E9=80=9A=E9=81=93?= =?UTF-8?q?=E5=86=85=E6=A0=B8=E6=A8=A1=E5=9D=97=E6=B7=BB=E5=8A=A0=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E5=BC=80=E5=85=B3=EF=BC=88=E9=BB=98=E8=AE=A4=E5=85=B3?= =?UTF-8?q?=E9=97=AD=EF=BC=89=20SOL=20=E4=BF=AE=E6=94=B9=E4=BA=BA=EF=BC=9A?= =?UTF-8?q?gechangwei=20=E6=A3=80=E8=A7=86=E4=BA=BA=EF=BC=9Agechangwei?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gechangwei --- Common/commuapinl.h | 6 + Platform/modules/cfgrcv/cfgrcv_kinit.c | 32 +++- Platform/modules/netlink_api/libnetlink_k.c | 93 ++++++++---- Platform/modules/netlink_api/libnetlink_k.h | 7 + .../modules/pdelivery/pdeliverynl_kinit.c | 18 ++- Platform/user/ceshi_cfg/Makefile | 44 ------ Platform/user/ceshi_cfg/cfgchannel_sample.c | 141 ------------------ .../user/ceshi_cfg/cfgchannel_test_sample | Bin 19824 -> 0 bytes Platform/user/ceshi_pde/Makefile | 44 ------ Platform/user/ceshi_pde/pdeliv_test_main | Bin 14704 -> 0 bytes Platform/user/ceshi_pde/pdelivery_main.c | 89 ----------- 11 files changed, 121 insertions(+), 353 deletions(-) delete mode 100644 Platform/user/ceshi_cfg/Makefile delete mode 100644 Platform/user/ceshi_cfg/cfgchannel_sample.c delete mode 100644 Platform/user/ceshi_cfg/cfgchannel_test_sample delete mode 100644 Platform/user/ceshi_pde/Makefile delete mode 100644 Platform/user/ceshi_pde/pdeliv_test_main delete mode 100644 Platform/user/ceshi_pde/pdelivery_main.c diff --git a/Common/commuapinl.h b/Common/commuapinl.h index 62108bd47..410245491 100755 --- a/Common/commuapinl.h +++ b/Common/commuapinl.h @@ -42,12 +42,16 @@ enum pdeliverynetlink_groups { #define COMMLIBNLGRP_MAX 16 /*支持的最大组数量*/ +#define DEBUGFS_PRK_ONOFF 0 + /*netlink pdelivery msg type*/ enum pdelivmsgtype{ PDNL_BASE = 0x10,/*netlink 保留控制消息*/ NLMSG_PDELIV_DEBUGFS = 0x11, /*用户态发送给内核态的请求消息,用于查看pdiliv模块本身的状态及配置,与业务无关*/ NLMSG_RECV_RAW_PKT = 0x12,/*上送DPI的报文消息*/ PDNLGRP_REQUEST, + NK_DEBUGFS_PRK_ONOFF = 0X16,/*DEBUGFS PRINTK ON 0R OFF: 1->ON; 0->OFF */ + /*for trace*/ TRACE_CFG_POLICY_REQ = 0x20, TRACE_CFG_POLICY_REPLY, @@ -81,6 +85,8 @@ enum commcfgmsgtype{ COMMMSGNL_BASE = 0x10,/*netlink 保留控制消息*/ COMMNMSG_CFG_DEBUGFS = 0x11,/*keep the same with NLMSG_PDELIV_DEBUGFS */ COMMNMSG_POLICYCONF, + + NK_DEBUGFS_PRK_ONOFF_CFG = 0X16,/*keep the same with DEBUGFS PRINTK ON OR OFF */ /*add your msg type here:*/ diff --git a/Platform/modules/cfgrcv/cfgrcv_kinit.c b/Platform/modules/cfgrcv/cfgrcv_kinit.c index 44bf8dd93..a3c58c160 100755 --- a/Platform/modules/cfgrcv/cfgrcv_kinit.c +++ b/Platform/modules/cfgrcv/cfgrcv_kinit.c @@ -158,8 +158,8 @@ int cfgrcv_debugfs(struct sk_buff *skb, struct nlmsghdr *nlh,struct netlink_ext_ { int ret = 0; - printk(KERN_INFO "cfgrcv_debugfs, From pid: %d\n", nlh->nlmsg_pid); - + NETLINK_DEBUG(g_upmnlcfg.debugfs_prk_enable, "cfgrcv_debugfs, From pid: %d\n", nlh->nlmsg_pid); +/* #ifdef NLDEBUG_ACK_COOKIES ret = debugfs_pkt_num_stati(&g_upmnlcfg, nlh,extack); #else @@ -168,7 +168,34 @@ int cfgrcv_debugfs(struct sk_buff *skb, struct nlmsghdr *nlh,struct netlink_ext_ printk("*****************biduichengong***************\n"); return ret; +*/ + switch(nlh->nlmsg_type) + { + //case COMMNMSG_POLICYCONF:/**/ + case NLMSG_PDELIV_DEBUGFS: + +#ifdef NLDEBUG_ACK_COOKIES + ret = debugfs_pkt_num_stati(&g_upmnlcfg, nlh,extack); +#else + ret = debugfs_pkt_num_stati_witisend(&g_upmnlcfg, nlh,cfgnl_msg_handlers); +#endif + NETLINK_DEBUG(g_upmnlcfg.debugfs_prk_enable, "*****************biduichengong********%d*******\n", nlh->nlmsg_type); + + return ret; + break; + case NK_DEBUGFS_PRK_ONOFF: + ret = debugfs_prk_onoff(&g_upmnlcfg, nlh, extack); + return ret; + break; + + default: + NETLINK_DEBUG(g_upmnlcfg.debugfs_prk_enable, "libnetlink Unknow msgtype recieved!\n"); + return 0; + } + /**************************************************************************************************************/ + + return 0; } int cfg_msgtype_register( int msgtype,commnl_doit_func doit, @@ -226,6 +253,7 @@ int __init cfgrcv_init(void) /*do msg process register*/ ret = cfg_msgtype_register(COMMNMSG_CFG_DEBUGFS,cfgrcv_debugfs,NULL,NULL); + ret = cfg_msgtype_register(NK_DEBUGFS_PRK_ONOFF,cfgrcv_debugfs,NULL,NULL); return ret; } diff --git a/Platform/modules/netlink_api/libnetlink_k.c b/Platform/modules/netlink_api/libnetlink_k.c index 132c89935..b222e7c38 100755 --- a/Platform/modules/netlink_api/libnetlink_k.c +++ b/Platform/modules/netlink_api/libnetlink_k.c @@ -148,19 +148,29 @@ int commnl_unicast(struct sock *sk, struct sk_buff *skb, u32 portid) return err; } - -int debugfs_pkt_num_stati(struct netlinkk_cfg *g_nlcfg, struct nlmsghdr *nlh,struct netlink_ext_ack *extack) +int debugfs_prk_onoff(struct netlinkk_cfg *g_nlcfg, struct nlmsghdr *nlh,struct netlink_ext_ack *extack) { unsigned char * cookies = "test cookies"; int len = 0; - - printk("debugfs_pkt_num_stati.\r\n"); + char *pload; + struct nlattr *rta; + char* load; + unsigned long fk_type; + + pload = nlmsg_data(nlh); + rta = (struct nlattr *)pload; + load = RTA_DATA(rta); + strict_strtoul(load, 10, &fk_type); + g_nlcfg->debugfs_prk_enable = fk_type; + + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "***gift***%s", __func__); + len = strlen(cookies); if(len > sizeof(extack->cookie) )/*check len*/ { - printk("debugfs_pkt_num_stati:cookies oversize the netlinkt cookies.\r\n"); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "debugfs_pkt_num_stati:cookies oversize the netlinkt cookies.\r\n"); extack->cookie_len = sizeof(extack->cookie); } else @@ -170,7 +180,35 @@ int debugfs_pkt_num_stati(struct netlinkk_cfg *g_nlcfg, struct nlmsghdr *nlh,str memcpy(extack->cookie, cookies, extack->cookie_len);/*becare:size must small than 20 u8!!!!!!!!!!*/ - printk("------------------debugfs_pkt_num_stati ack type=%d,seq=%d,extack->cookie_len=%d.\n", + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "-debugfs_pkt_num_stati ack type=%d,seq=%d,extack->cookie_len=%d.\n", + nlh->nlmsg_type,nlh->nlmsg_seq,extack->cookie_len); + + return 0; +} + + +int debugfs_pkt_num_stati(struct netlinkk_cfg *g_nlcfg, struct nlmsghdr *nlh,struct netlink_ext_ack *extack) +{ + unsigned char * cookies = "test cookies"; + int len = 0; + + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "debugfs_pkt_num_stati.\r\n"); + + len = strlen(cookies); + + if(len > sizeof(extack->cookie) )/*check len*/ + { + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "debugfs_pkt_num_stati:cookies oversize the netlinkt cookies.\r\n"); + extack->cookie_len = sizeof(extack->cookie); + } + else + { + extack->cookie_len = len; + } + + memcpy(extack->cookie, cookies, extack->cookie_len);/*becare:size must small than 20 u8!!!!!!!!!!*/ + + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "-debugfs_pkt_num_stati ack type=%d,seq=%d,extack->cookie_len=%d.\n", nlh->nlmsg_type,nlh->nlmsg_seq,extack->cookie_len); return 0; @@ -193,10 +231,10 @@ int debugfs_pkt_num_stati_witisend(struct netlinkk_cfg *g_nlcfg, rta = (struct nlattr *)pload; load = RTA_DATA(rta); - printk("***************************rta->nla_type=%d********************\n", rta->nla_type); //nla_type - printk("**************************load=*****%s**********\n",(char *)load); //string printf + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "*******rta->nla_type=%d*********\n", rta->nla_type); //nla_type + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "*******load=*****%s**********\n",(char *)load); //string printf strict_strtoul(load, 10, &fk_type); - printk("***************************fk_type%lu********************\n", fk_type); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "*******fk_type%lu********************\n", fk_type); out_skb = nlmsg_new(2*length, GFP_KERNEL); @@ -214,27 +252,27 @@ int debugfs_pkt_num_stati_witisend(struct netlinkk_cfg *g_nlcfg, memcpy(nlmsg_data(out_nlh)+length, tmp_dfs, length); #if 1 - printk("netlink total msg stats:\r\n"); - printk(" rev_total = %d\n",g_nlcfg->dfs.rev_total); - printk(" rev_cb_sucess = %d\n",g_nlcfg->dfs.rev_cb_sucess); - printk(" rev_cb_fail = %d\n",g_nlcfg->dfs.rev_cb_fail); - printk(" rev_drop_total = %d\n",g_nlcfg->dfs.rev_drop_total); - printk(" rev_drop_nodoit = %d\n",g_nlcfg->dfs.rev_drop_nodoit); - printk(" send_succ = %d\n",g_nlcfg->dfs.send_succ); - printk(" send_fail = %d\n",g_nlcfg->dfs.send_fail); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " netlink total msg stats:\r\n"); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_total = %d\n",g_nlcfg->dfs.rev_total); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_cb_sucess = %d\n",g_nlcfg->dfs.rev_cb_sucess); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_cb_fail = %d\n",g_nlcfg->dfs.rev_cb_fail); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_drop_total = %d\n",g_nlcfg->dfs.rev_drop_total); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_drop_nodoit = %d\n",g_nlcfg->dfs.rev_drop_nodoit); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " send_succ = %d\n",g_nlcfg->dfs.send_succ); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " send_fail = %d\n",g_nlcfg->dfs.send_fail); - printk("netlink msg stats:\r\n"); - printk(" rev_total = %d\n",tmp_dfs->rev_total); - printk(" rev_cb_sucess = %d\n",tmp_dfs->rev_cb_sucess); - printk(" rev_cb_fail = %d\n",tmp_dfs->rev_cb_fail); - printk(" rev_drop_total = %d\n",tmp_dfs->rev_drop_total); - printk(" rev_drop_nodoit = %d\n",tmp_dfs->rev_drop_nodoit); - printk(" send_succ = %d\n",tmp_dfs->send_succ); - printk(" send_fail = %d\n",tmp_dfs->send_fail); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " netlink msg stats:\r\n"); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_total = %d\n",tmp_dfs->rev_total); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_cb_sucess = %d\n",tmp_dfs->rev_cb_sucess); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_cb_fail = %d\n",tmp_dfs->rev_cb_fail); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_drop_total = %d\n",tmp_dfs->rev_drop_total); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " rev_drop_nodoit = %d\n",tmp_dfs->rev_drop_nodoit); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " send_succ = %d\n",tmp_dfs->send_succ); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " send_fail = %d\n",tmp_dfs->send_fail); #endif - printk("------------------debugfs_pkt_num_stati ack msg_type %d,seq=%d!\n",out_nlh->nlmsg_type,nlh->nlmsg_seq); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, "------------------debugfs_pkt_num_stati ack msg_type %d,seq=%d!\n",out_nlh->nlmsg_type,nlh->nlmsg_seq); err = commnl_unicast(g_nlcfg->sk, out_skb, nlh->nlmsg_pid); if (err > 0) { @@ -252,7 +290,7 @@ failure: //kfree_skb(out_skb); } - printk(KERN_INFO " failed in fun dataready!\n"); + NETLINK_DEBUG(g_nlcfg->debugfs_prk_enable, " failed in fun dataready!\n"); return 0; } @@ -284,6 +322,7 @@ EXPORT_SYMBOL_GPL(printk_ipaddress); EXPORT_SYMBOL_GPL(debugfs_pkt_num_stati); EXPORT_SYMBOL_GPL(debugfs_pkt_num_stati_witisend); EXPORT_SYMBOL_GPL(nf_nlmsg_multicast); +EXPORT_SYMBOL_GPL(debugfs_prk_onoff); diff --git a/Platform/modules/netlink_api/libnetlink_k.h b/Platform/modules/netlink_api/libnetlink_k.h index 62ee153ae..239054e17 100755 --- a/Platform/modules/netlink_api/libnetlink_k.h +++ b/Platform/modules/netlink_api/libnetlink_k.h @@ -11,6 +11,9 @@ #include #include "../../../Common/commuapinl.h" +#define NETLINK_DEBUG(debugfs_enable, ...) \ + if(DEBUGFS_PRK_ONOFF != debugfs_enable) printk(__VA_ARGS__) + struct netlinkk_cfg { @@ -23,6 +26,7 @@ struct netlinkk_cfg struct netlink_debugfs dfs; struct commnl_msgtype_process* msg_processer; int msg_processer_num; + unsigned long debugfs_prk_enable; }; typedef int (*commnl_doit_func)(struct sk_buff *, struct nlmsghdr *,struct netlink_ext_ack *); @@ -83,5 +87,8 @@ extern int debugfs_pkt_num_stati_witisend(struct netlinkk_cfg *g_nlcfg, extern int nf_nlmsg_multicast(struct netlinkk_cfg *g_nlcfg, struct sk_buff *skb); +extern int debugfs_prk_onoff(struct netlinkk_cfg *g_nlcfg, + struct nlmsghdr *nlh,struct netlink_ext_ack *extack); + #endif diff --git a/Platform/modules/pdelivery/pdeliverynl_kinit.c b/Platform/modules/pdelivery/pdeliverynl_kinit.c index 31dc3c807..5e58c9709 100644 --- a/Platform/modules/pdelivery/pdeliverynl_kinit.c +++ b/Platform/modules/pdelivery/pdeliverynl_kinit.c @@ -49,12 +49,16 @@ int pdeliv_rcv_stat(struct sk_buff *skb, struct nlmsghdr *nlh,struct netlink_ext #else ret = debugfs_pkt_num_stati_witisend(&g_nlcfg, nlh,pdelivnl_msg_handlers); #endif - printk("*****************biduichengong********%d*******\n", nlh->nlmsg_type); + NETLINK_DEBUG(g_nlcfg.debugfs_prk_enable, "*****************biduichengong********%d*******\n", nlh->nlmsg_type); return ret; break; + case NK_DEBUGFS_PRK_ONOFF: + ret = debugfs_prk_onoff(&g_nlcfg, nlh, ext_ack); + return ret; + break; default: - printk(KERN_INFO "libnetlink Unknow msgtype recieved!\n"); + NETLINK_DEBUG(g_nlcfg.debugfs_prk_enable, "libnetlink Unknow msgtype recieved!\n"); return 0; } /**************************************************************************************************************/ @@ -66,7 +70,7 @@ int nl_pdeliv_data_ready(struct sk_buff *skb, struct nlmsghdr *nlh, struct netli { int ret = 0; - printk(KERN_DEBUG "nl_pdeliv_data_ready() nlmsg_type = %d begin.\n",nlh->nlmsg_type); + NETLINK_DEBUG(g_nlcfg.debugfs_prk_enable, "nl_pdeliv_data_ready() nlmsg_type = %d begin.\n",nlh->nlmsg_type); g_nlcfg.dfs.rev_total++; if(NULL != pdelivnl_msg_handlers[nlh->nlmsg_type].doit) @@ -92,10 +96,10 @@ int nl_pdeliv_data_ready(struct sk_buff *skb, struct nlmsghdr *nlh, struct netli g_nlcfg.dfs.rev_drop_total++; g_nlcfg.dfs.rev_drop_nodoit++; - printk(KERN_WARNING "no doit fun register with nlmsg_type = %d .\n",nlh->nlmsg_type); + NETLINK_DEBUG(g_nlcfg.debugfs_prk_enable, "no doit fun register with nlmsg_type = %d .\n",nlh->nlmsg_type); } - printk(KERN_DEBUG "nl_pdeliv_data_ready() nlmsg_type = %d end.\n",nlh->nlmsg_type); + NETLINK_DEBUG(g_nlcfg.debugfs_prk_enable, "nl_pdeliv_data_ready() nlmsg_type = %d end.\n",nlh->nlmsg_type); return ret; } @@ -103,7 +107,7 @@ int nl_pdeliv_data_ready(struct sk_buff *skb, struct nlmsghdr *nlh, struct netli static void libpdelivnl_rcv(struct sk_buff *skb) { - printk(KERN_DEBUG "libpdelivnl_rcv:\n"); + NETLINK_DEBUG(g_nlcfg.debugfs_prk_enable, "libpdelivnl_rcv:\n"); netlink_rcv_skb(skb, &nl_pdeliv_data_ready); @@ -169,6 +173,8 @@ int __init pdelivery_init(void) /*do msg process register*/ pdeliv_msgtype_register(PDNLGRP_REQUEST,pdeliv_rcv_stat,NULL,NULL); pdeliv_msgtype_register(NLMSG_PDELIV_DEBUGFS,pdeliv_rcv_stat,NULL,NULL); + pdeliv_msgtype_register(NK_DEBUGFS_PRK_ONOFF,pdeliv_rcv_stat,NULL,NULL); + return 0; } diff --git a/Platform/user/ceshi_cfg/Makefile b/Platform/user/ceshi_cfg/Makefile deleted file mode 100644 index a3e603027..000000000 --- a/Platform/user/ceshi_cfg/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -###################################### -# -###################################### -#source file -#ԴļԶ.c.cppļĿ궨Ϊͬ.oļ -SOURCE := $(wildcard *.c) $(wildcard *.cpp) -OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))) - -#target you can change test to what you want -#ĿļҪִļ -TARGET := cfgchannel_test_sample - -#compile and lib parameter -# -CC := gcc -LIBS := -L../netlink_uapi -lnetlinku -LDFLAGS := -DEFINES := -INCLUDE := -I../lib -I../../../Common -I../netlink_uapi -CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) -CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H - - -#i think you should do anything here -#ĻϲҪκθĶ -.PHONY : everything objs clean veryclean rebuild - -everything : $(TARGET) - -all : $(TARGET) - -objs : $(OBJS) - -rebuild: veryclean everything - -clean : - rm -fr *.so - rm -fr *.o - -veryclean : clean - rm -fr $(TARGET) - -$(TARGET) : $(OBJS) - $(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) diff --git a/Platform/user/ceshi_cfg/cfgchannel_sample.c b/Platform/user/ceshi_cfg/cfgchannel_sample.c deleted file mode 100644 index 9875a3013..000000000 --- a/Platform/user/ceshi_cfg/cfgchannel_sample.c +++ /dev/null @@ -1,141 +0,0 @@ - -#include -#include -#include -#include -#include -#include - -#include "libnetlinku.h" -#include "policyconf.h" -#include "commuapinl.h" - -struct upmnl_handle cfgnlh; - -#if 0 -static int process_msg(struct pdelivnl_ctrl_data *ctrl, - struct nlmsghdr *n, void *arg) -{ -// FILE *fp = arg; - - printf("pdelivery main process_msg begin:\r\n"); - - - //if (timestamp) - //print_timestamp(fp); - - switch (n->nlmsg_type) { - case NLMSG_RECV_RAW_PKT: - printf("netlink msg type RAW_pkt:\r\n"); - printf_pkt(NLMSG_DATA(n),n->nlmsg_len-NLMSG_HDRLEN); - - break; - - default: - return 0; - } - - return 0; -} -#endif - -int set_user_policy_waitack() -{ - unsigned char srcip[64]={"192.168.1.1"};/*需要发送的数据*/ - int srcip_len = strlen((const char *)srcip); - - struct { - struct nlmsghdr n; - struct policyconfmsg ncm; - char buf[1024]; - } req = { - .n.nlmsg_len = NLMSG_LENGTH(sizeof(struct policyconfmsg)), - .n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK, - //.n.nlmsg_type = COMMNMSG_POLICYCONF, - .n.nlmsg_type = COMMNMSG_DEBUGFS, - .ncm.policy_id = 17, - .n.nlmsg_pid = getpid(), - }; - - printf("set_user_policy_waitack\r\n"); - - /*可选属性*/ - commnl_addattr_l(&req.n, sizeof(req), POLICYCONFA_SRCIP, srcip, srcip_len); - - printf("srcip_len =%d.req.n.nlmsg_type =%d\r\n",srcip_len,req.n.nlmsg_type); - - - /*发送组装好的netlink消息*/ - if (commcfg_talk(&req.n, NULL) < 0) - return -2; - - return 0; - -} - - -int set_user_policy_nowaitack() -{ - unsigned char srcip[64]={"192.168.1.1"};/*需要发送的数据*/ - int srcip_len = strlen((const char *)srcip); - - struct { - struct nlmsghdr n; - struct policyconfmsg ncm; - char buf[1024]; - } req = { - .n.nlmsg_len = NLMSG_LENGTH(sizeof(struct policyconfmsg)), - .n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK, - .n.nlmsg_type = COMMNMSG_POLICYCONF, - .ncm.policy_id = 17, - .n.nlmsg_pid = getpid(), - }; - - printf("set_user_policy_nowaitack\r\n"); - - /*可选属性*/ - commnl_addattr_l(&req.n, sizeof(req), POLICYCONFA_SRCIP, srcip, srcip_len); - - printf("srcip_len =%d.req.n.nlmsg_type =%d\r\n",srcip_len,req.n.nlmsg_type); - - /*发送组装好的netlink消息*/ - if (commcfg_send(&req.n) < 0) - return -2; - - return 0; - -} - - -int main( int argc, char **argv) -{ - int ret = -1; - - - printf("cfgchannel main begin:\r\n"); - - /*创建通道*/ - ret = commcfgnl_open(); - if(ret < 0) - { - printf("pdelivnl_open fail,exit.\r\n"); - return -1; - } - - /*下发配置到内核态*/ - ret = set_user_policy_nowaitack(); - if(ret < 0) - { - printf("set_user_policy failed.\r\n"); - return -1; - } - - /*关闭netlink通道*/ - commcfgnl_close(); - - printf("cfgchannel main exit!\r\n"); - return 0; -} - - - diff --git a/Platform/user/ceshi_cfg/cfgchannel_test_sample b/Platform/user/ceshi_cfg/cfgchannel_test_sample deleted file mode 100644 index d6111dfd30764e15b5d5b7cddaa9012ebb06abfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19824 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 E3s^&oCjbBd diff --git a/Platform/user/ceshi_pde/Makefile b/Platform/user/ceshi_pde/Makefile deleted file mode 100644 index eff22e0a8..000000000 --- a/Platform/user/ceshi_pde/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -###################################### -# -###################################### -#source file -#ԴļԶ.c.cppļĿ궨Ϊͬ.oļ -SOURCE := $(wildcard *.c) $(wildcard *.cpp) -OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))) - -#target you can change test to what you want -#ĿļҪִļ -TARGET := pdeliv_test_main - -#compile and lib parameter -# -CC := gcc -LIBS := -L../netlink_uapi -lnetlinku -LDFLAGS := -DEFINES := -INCLUDE := -I../lib -I../../../Common -I../netlink_uapi -CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) -CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H - - -#i think you should do anything here -#ĻϲҪκθĶ -.PHONY : everything objs clean veryclean rebuild - -everything : $(TARGET) - -all : $(TARGET) - -objs : $(OBJS) - -rebuild: veryclean everything - -clean : - rm -fr *.so - rm -fr *.o - -veryclean : clean - rm -fr $(TARGET) - -$(TARGET) : $(OBJS) - $(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) diff --git a/Platform/user/ceshi_pde/pdeliv_test_main b/Platform/user/ceshi_pde/pdeliv_test_main deleted file mode 100644 index b2ea1d6416a5659f90e8eb0b919d48201a29e218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14704 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 -#include -#include -#include -#include -#include - -#include "libnetlinku.h" -#include "policyconf.h" -#include "commuapinl.h" - -struct upmnl_handle cfgnlh; - -int set_user_policy() -{ - unsigned char debug[]={"17"};/*需要发送的数据*/ - int debug_len = strlen((const char *)debug); - - struct { - struct nlmsghdr n; - struct policyconfmsg ncm; - char buf[1024]; - } req = { - .n.nlmsg_len = NLMSG_LENGTH(sizeof(struct policyconfmsg)), - .n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK, - .n.nlmsg_type = COMMNMSG_POLICYCONF, - .ncm.policy_id =17, - .n.nlmsg_pid = getpid(), - }; - struct nlmsghdr **debugfs_nl; - struct pdeliv_debugfs *debugfs_statis; - struct nlmsghdr *recv_hdr; - - /*可选属性*/ - commnl_addattr_l(&req.n, sizeof(req), POLICYCONFA_SRCIP, debug, debug_len); - - /*发送组装好的netlink消息*/ - if (pdeliv_talk(0, &req.n, NULL) < 0) - { - return -2; - } -/* - - if(recv_hdr->nlmsg_type == COMMNMSG_DEBUGFS) - { - debugfs_statis = NLMSG_DATA(recv_hdr); - printf("******debugfs_statis->pde_fail = %d******\n",debugfs_statis->pde_fail); - printf("******debugfs_statis->pde_succ = %d******\n",debugfs_statis->pde_succ); - printf("******debugfs_statis->rev_fail = %d******\n",debugfs_statis->rev_fail); - printf("******debugfs_statis->rev_succ = %d******\n",debugfs_statis->rev_succ); - } - -*/ - return 0; - -} - -int main( int argc, char **argv) -{ - int ret = -1; - - printf("cfgchannel main begin:\r\n"); - - /*创建通道*/ - ret = pdelivnl_open(0); - if(ret < 0) - { - printf("pdelivnl_open fail,exit.\r\n"); - return -1; - } - - /*下发配置到内核态*/ - ret = set_user_policy(); - if(ret < 0) - { - printf("set_user_policy failed.\r\n"); - return -1; - } - - /*关闭netlink通道*/ - pdelivnl_close(0); - - printf("cfgchannel main exit!\r\n"); - return 0; -} - - -