This commit is contained in:
zhanglianghy 2019-06-27 11:12:44 +08:00
commit dac076b9d1
7 changed files with 39 additions and 10 deletions

View File

@ -79,6 +79,7 @@ ifeq ($(OPT), clean)
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f module.pdelivery.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=pdeliv $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f module.pdelivery.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=pdeliv
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.cfg2kernel.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=cfg2kernel $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.cfg2kernel.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=cfg2kernel
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.pdeliv_u.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=pdeliv_u $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.pdeliv_u.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=pdeliv_u
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.pdeliv.rcvtest.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=pdeliv_rcvtest
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.netlink_uapi.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=netlink_uapi $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.netlink_uapi.Makefile cleanall MLOG=$(MLOG) MAKE_TARGET=netlink_uapi
else ifeq ($(OPT), install) else ifeq ($(OPT), install)
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f module.netlink_api.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=netlink_api $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f module.netlink_api.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=netlink_api
@ -87,6 +88,7 @@ else ifeq ($(OPT), install)
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.netlink_uapi.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=netlink_uapi $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.netlink_uapi.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=netlink_uapi
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.cfg2kernel.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=cfg2kernel $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.cfg2kernel.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=cfg2kernel
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.pdeliv_u.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=pdeliv_u $(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.pdeliv_u.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=pdeliv_u
$(MLOG)make $(MAKE_FLAGS) -C Platform/build -f user.pdeliv.rcvtest.Makefile install DIR=$(DIR) MLOG=$(MLOG) MAKE_TARGET=pdeliv_rcvtest
else else
$(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f module.netlink_api.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=netlink_api $(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f module.netlink_api.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=netlink_api
$(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f module.cfgrcv.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=cfgrcv $(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f module.cfgrcv.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=cfgrcv
@ -94,6 +96,7 @@ else
$(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.netlink_uapi.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=netlink_uapi $(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.netlink_uapi.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=netlink_uapi
$(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.cfg2kernel.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=cfg2kernel $(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.cfg2kernel.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=cfg2kernel
$(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.pdeliv_u.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=pdeliv_u $(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.pdeliv_u.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=pdeliv_u
$(MLOG)make all $(MAKE_FLAGS) -C Platform/build -f user.pdeliv.rcvtest.Makefile MLOG=$(MLOG) DISABLE_WARRING=$(DIS_BUILD_WARRING) MAKE_TARGET=pdeliv_rcvtest
endif endif
trace: trace:

View File

@ -1,5 +1,5 @@
# target name, the target name must have the same name of c source file # target name, the target name must have the same name of c source file
TARGET_NAME=pdeliv TARGET_NAME=pdeliv_rcvtest
# target # target
# for linux module driver: KO # for linux module driver: KO
@ -27,7 +27,7 @@ VPATH = ../user/pdeliv_u
# set the source file, don't used .o because of ... # set the source file, don't used .o because of ...
COMMON_SRCS = pdelivery_main.c COMMON_SRCS = dpi_rcv_test.c
# MRS Board Source Files # MRS Board Source Files
PLAT_LINUX_SRCS = $(COMMON_SRCS) PLAT_LINUX_SRCS = $(COMMON_SRCS)
@ -41,8 +41,8 @@ PLAT_LINUX_CFLAGS := $(PLAT_ARM64_CFLAGS)
PLAT_ARM64_LDFLAGS := PLAT_ARM64_LDFLAGS :=
PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS) PLAT_LINUX_LDFLAGS := $(PLAT_ARM64_LDFLAGS)
ARM64_LIBS := ./pdeliv-rcvtest-arm64.so ARM64_LIBS := ./libnetlinku-arm64.so
LINUX_LIBS := ./pdeliv-rcvtest-linux.so LINUX_LIBS := ./libnetlinku-linux.so

View File

@ -237,10 +237,21 @@ int debugfs_pkt_num_stati_witisend(struct netlinkk_cfg *g_nlcfg,
printk("------------------debugfs_pkt_num_stati ack msg_type %d,seq=%d!\n",out_nlh->nlmsg_type,nlh->nlmsg_seq); printk("------------------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); err = commnl_unicast(g_nlcfg->sk, out_skb, nlh->nlmsg_pid);
if (err > 0) if (err > 0)
{
err = 0; err = 0;
}
else
{
goto failure;
}
return err; return err;
failure: failure:
if(out_skb != NULL)
{
//kfree_skb(out_skb);
}
printk(KERN_INFO " failed in fun dataready!\n"); printk(KERN_INFO " failed in fun dataready!\n");
return 0; return 0;
} }

View File

@ -258,6 +258,11 @@ unsigned int pdelivery_hook_func(void *priv,
return NF_ACCEPT;/*must return a value*/ return NF_ACCEPT;/*must return a value*/
failure: failure:
if(out_skb != NULL)
{
//kfree_skb(out_skb);
}
//printk(KERN_INFO " failed in pdelivery_hook_func!\n"); //printk(KERN_INFO " failed in pdelivery_hook_func!\n");
g_nlcfg.dfs.send_fail ++; g_nlcfg.dfs.send_fail ++;
g_nlcfg.msg_processer[NLMSG_RECV_RAW_PKT].dfs.send_fail++; g_nlcfg.msg_processer[NLMSG_RECV_RAW_PKT].dfs.send_fail++;

View File

@ -660,6 +660,12 @@ int conmnl_listen(struct upmnl_handle *nl,
//printf("pdelivnl_listen recvmsg....\r\n"); //printf("pdelivnl_listen recvmsg....\r\n");
iov.iov_len = sizeof(buf); iov.iov_len = sizeof(buf);
//status = recvmsg(nl->fd, &msg, MSG_WAITALL); //status = recvmsg(nl->fd, &msg, MSG_WAITALL);
if(nl->fd <= 0)
{
printf("conmnl_listen fd is closed,fd = %d,exist listen.\r\rn",nl->fd);
return 0;
}
status = recvmsg(nl->fd, &msg, MSG_WAITFORONE); status = recvmsg(nl->fd, &msg, MSG_WAITFORONE);
if (status < 0) { if (status < 0) {

View File

@ -53,13 +53,16 @@ int main(int argc, char **argv)
} else { } else {
printf("sync exec\n"); printf("sync exec\n");
trace_sync_exec(&trace1); trace_sync_exec(&trace1);
printf("sync final\n");
} }
printf("send success\n"); printf("send success\n");
} }
//policy_client_exit(); //policy_client_exit();
if (async != 3) {
sleep(10); sleep(10);
}
trace_client_exit();
return 0; return 0;
} }

View File

@ -59,7 +59,7 @@ typedef struct _sess {
static int g_pid; static int g_pid;
static pthread_t g_client_thread; static pthread_t g_client_thread;
static volatile int g_client_stop = 0; //static volatile int g_client_stop = 0;
static uint32_t g_seq = 0; static uint32_t g_seq = 0;
static volatile sess_t g_sess = {0}; static volatile sess_t g_sess = {0};
@ -256,7 +256,8 @@ FAIL:
trace_ret_t trace_client_exit() trace_ret_t trace_client_exit()
{ {
g_client_stop = 1; //g_client_stop = 1;
cfg_channel_close(); // 先关闭判断SOCKET异常来退出线程
pthread_join(g_client_thread, NULL); pthread_join(g_client_thread, NULL);
for (int i = 0; i < sizeof(g_sess.hsess_mutex) / sizeof(pthread_mutex_t); i++) { for (int i = 0; i < sizeof(g_sess.hsess_mutex) / sizeof(pthread_mutex_t); i++) {
@ -267,7 +268,7 @@ trace_ret_t trace_client_exit()
struct hlist_node *n; struct hlist_node *n;
COLLECT_HLIST_CLEAR(pos, n, g_sess.hess, sizeof(g_sess.hess) / sizeof(struct hlist_head), node, free); COLLECT_HLIST_CLEAR(pos, n, g_sess.hess, sizeof(g_sess.hess) / sizeof(struct hlist_head), node, free);
cfg_channel_close();
return TRACE_SUCCESS; return TRACE_SUCCESS;
} }