secgateway/Platform/modules/conntrack_api/test/test.c

277 lines
7.6 KiB
C
Raw Normal View History

2019-06-11 03:21:35 +00:00
#include "../api/conntrack_api.h"
/*
˵<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>:
1<EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD>ٱ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ϻ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ct<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ct,<EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ct<EFBFBD><EFBFBD><EFBFBD><EFBFBD>aid
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>tcp,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>֮ǰҪ<EFBFBD>Ƚ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ֻҪ״̬ΪESTABLISHED
<EFBFBD><EFBFBD>ct<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϻ<EFBFBD>.
2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ct֮<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD>ҵ<EFBFBD>
<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ct,<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>aid<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>.
<EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD>
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>conntrack_api.ko
2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tcp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>״̬ΪESTABLISHED
3<EFBFBD><EFBFBD>test<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aid<EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD>dpi_set_aid_test_tcp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>init<EFBFBD><EFBFBD>
<EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>,get_aid_test<EFBFBD><EFBFBD><EFBFBD><EFBFBD>netfilter<EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>test.ko(<EFBFBD>˴<EFBFBD><EFBFBD><EFBFBD>testΪ<EFBFBD><EFBFBD>init<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>aid,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>tcp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>test<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>ct,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>aidʧ<EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>dpi_set_aid_test_tcp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>netfilter<EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>ɱ<EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>test.ko<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD>ٴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD>)
keypoint: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD>ٺ<EFBFBD>test<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aid
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>init,ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ôִ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aid<EFBFBD><EFBFBD>netfilter
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>ɱ<EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν,<EFBFBD><EFBFBD>Ϊֻ
Ҫ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ȥ<EFBFBD>Ϳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>tcp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,server<EFBFBD><EFBFBD>һֱѭ<EFBFBD><EFBFBD>recv,<EFBFBD><EFBFBD>close fd,
client<EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD>close fd,<EFBFBD>ȴ<EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>send;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD>ct,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>send<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
TCP<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD>ٵ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳɹ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ct.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: 0<EFBFBD><EFBFBD>-1
*/
enum test_proto_type{
TEST_PROTO_TCP,
TEST_PROTO_UDP,
};
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD>ȡӦ<EFBFBD><EFBFBD>aid<EFBFBD><EFBFBD>base_aid,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>netfilter<EFBFBD><EFBFBD>hook<EFBFBD><EFBFBD>
2019-06-11 03:21:35 +00:00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:void *, struct sk_buff *, const struct nf_hook_state *
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
**********************************************************/
static unsigned int get_aid_test(void *priv, struct sk_buff *skb, const struct nf_hook_state *state)
{
int ret;
uint16_t aid;
uint16_t base_aid;
2019-06-11 03:21:35 +00:00
printk(KERN_INFO"[test]: test get app_id\n");
ret = cmhi_get_conntrack_u16(skb, &aid, APP_ID);
if(ret == CMHI_EXT_ERR){
printk(KERN_INFO"[test]: get app_id failed\n");
goto out;
}
printk(KERN_INFO"[test]: get app_id: %d successed\n", aid);
printk(KERN_INFO"[test]: test get base_app_id\n");
ret = cmhi_get_conntrack_u16(skb, &base_aid, BASE_APP_ID);
if(ret == CMHI_EXT_ERR){
printk(KERN_INFO"[test]: get base_app_id failed\n");
goto out;
}
printk(KERN_INFO"[test]: get base_app_id: %d successed\n", base_aid);
2019-06-11 03:21:35 +00:00
goto out;
out:
return NF_ACCEPT;
}
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ct
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: 0<EFBFBD><EFBFBD>-1
**********************************************************/
int dpi_get_ct_test_tcp(void)
{
int ret;
struct nf_conn *ct;
struct dpi_tuple dpi_tuple;
dpi_tuple.sip = htonl(0xc0a840bc);//192.168.64.188
dpi_tuple.dip = htonl(0xc0a840c2);//192.168.64.194
dpi_tuple.protonum = IPPROTO_TCP;
dpi_tuple.sport = htons(179);
dpi_tuple.dport = htons(10020);
printk(KERN_INFO"[Test-tcp]dpi_tuple sip=%u, dip=%u, proto=%d, sport=%du, dport=%du\n",
dpi_tuple.sip, dpi_tuple.dip, dpi_tuple.protonum, dpi_tuple.sport, dpi_tuple.dport);
ct = get_conntrack_from_tuple(&dpi_tuple);
if(!ct){
printk(KERN_ERR"[Test-tcp]get ct failed!!\n");
ret = CMHI_EXT_ERR;
}
else {
printk(KERN_INFO"[Test-tcp]Find it!!\n");
ret = CMHI_EXT_OK;
}
goto out;
out:
return ret;
}
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ct
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: 0<EFBFBD><EFBFBD>-1
**********************************************************/
int dpi_get_ct_test_udp(void)
{
int ret;
struct nf_conn *ct;
struct dpi_tuple dpi_tuple;
dpi_tuple.sip = htonl(0xc0a840c7);//192.168.64.199
dpi_tuple.dip = htonl(0xc0a840c2);//192.168.64.194
dpi_tuple.protonum = IPPROTO_UDP;
dpi_tuple.sport = htons(7);
dpi_tuple.dport = htons(520);
printk(KERN_INFO"[Test-udp]dpi_tuple sip=%x, dip=%x, proto=%d, sport=%x, dport=%x\n",
dpi_tuple.sip, dpi_tuple.dip, dpi_tuple.protonum, dpi_tuple.sport, dpi_tuple.dport);
ct = get_conntrack_from_tuple(&dpi_tuple);
if(!ct){
printk(KERN_ERR"[Test-udp]get ct failed!!\n");
ret = CMHI_EXT_ERR;
}
else {
printk(KERN_INFO"[Test-udp]Find it!!\n");
ret = CMHI_EXT_OK;
}
goto out;
out:
return ret;
}
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD>ct<EFBFBD><EFBFBD><EFBFBD><EFBFBD>aid<EFBFBD><EFBFBD>base_aid
2019-06-11 03:21:35 +00:00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: 0<EFBFBD><EFBFBD>-1
**********************************************************/
int dpi_set_aid_test_tcp(void)
{
int ret;
// uint16_t aid;
struct dpi dpi;
dpi.tuple.sip = htonl(0xc0a840bc);//192.168.64.188
dpi.tuple.dip = htonl(0xc0a840c2);//192.168.64.194
dpi.tuple.protonum = IPPROTO_TCP;
dpi.tuple.sport = htons(179);
dpi.tuple.dport = htons(10020);
dpi.aid = 3;
dpi.base_aid = 3;
printk(KERN_INFO"[Test]dpi_tuple sip=%x, dip=%x, proto=%d, sport=%du, dport=%du,aid=%u, base_aid=%u\n",
dpi.tuple.sip, dpi.tuple.dip, dpi.tuple.protonum, dpi.tuple.sport, dpi.tuple.dport, dpi.aid, dpi.base_aid);
2019-06-11 03:21:35 +00:00
ret = set_aid_by_dpi_tuple(&dpi);
if(CMHI_EXT_OK != ret){
printk(KERN_ERR"[Test]set_aid_by_dpi_tuple failed.\n");
return CMHI_EXT_ERR;
}
return CMHI_EXT_OK;
}
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD>ct<EFBFBD><EFBFBD><EFBFBD><EFBFBD>aid<EFBFBD><EFBFBD>base_aid
2019-06-11 03:21:35 +00:00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: 0<EFBFBD><EFBFBD>-1
**********************************************************/
int dpi_set_aid_test_udp(void)
{
int ret;
// uint16_t aid;
struct dpi dpi;
dpi.tuple.sip = htonl(0xc0a840c7);//192.168.64.199
dpi.tuple.dip = htonl(0xc0a840c2);//192.168.64.194
dpi.tuple.protonum = IPPROTO_UDP;
dpi.tuple.sport = htons(7);
dpi.tuple.dport = htons(520);
dpi.aid = 5;
dpi.base_aid = 5;
printk(KERN_INFO"[Test]dpi_set_aid_test_udp: dpi_tuple sip=%x, dip=%x, proto=%d, sport=%d, dport=%d,aid=%u, dpi.base_aid=%u\n",
dpi.tuple.sip, dpi.tuple.dip, dpi.tuple.protonum, dpi.tuple.sport, dpi.tuple.dport, dpi.aid, dpi.base_aid);
2019-06-11 03:21:35 +00:00
ret = set_aid_by_dpi_tuple(&dpi);
if(CMHI_EXT_OK != ret){
printk(KERN_ERR"[Test]dpi_set_aid_test_udp: set_aid_by_dpi_tuple failed.\n");
return CMHI_EXT_ERR;
}
return CMHI_EXT_OK;
}
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* aid<EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enum test_proto_type
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
**********************************************************/
void dpi_set_aid_test(enum test_proto_type type)
{
if(TEST_PROTO_TCP == type){
dpi_set_aid_test_tcp();
}
else if(TEST_PROTO_UDP == type){
dpi_set_aid_test_udp();
}
return;
}
/**********************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<EFBFBD><EFBFBD>UDP<EFBFBD>Ļ<EFBFBD>ȡ
* <EFBFBD><EFBFBD><EFBFBD>Ӹ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ct
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enum test_proto_type
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: <EFBFBD><EFBFBD>
**********************************************************/
void dpi_get_ct_test(enum test_proto_type type)
{
if(TEST_PROTO_TCP == type){
dpi_get_ct_test_tcp();
}
else if(TEST_PROTO_UDP == type){
dpi_get_ct_test_udp();
}
return;
}
static struct nf_hook_ops nfho[] __read_mostly = {
//{
//.hook = (nf_hookfn *)demoB,
//.hooknum = NF_INET_PRE_ROUTING,
//.pf = NFPROTO_IPV4,
//.priority = (NF_IP_PRI_FILTER-1),
//},
{
.hook = (nf_hookfn *)get_aid_test,
.hooknum = NF_INET_PRE_ROUTING,
.pf = NFPROTO_IPV4,
.priority = NF_IP_PRI_FILTER,
},
};
static int __init test_init(void)
{
dpi_set_aid_test(TEST_PROTO_TCP);
nf_register_net_hooks(&init_net, nfho, ARRAY_SIZE(nfho));
printk(KERN_INFO"[Test] Module_init\n");
return 0;
}
static void __exit test_clean(void)
{
nf_unregister_net_hooks(&init_net, nfho, ARRAY_SIZE(nfho));
printk(KERN_INFO"[Test]Module_clean\n");
return;
}
module_init(test_init);
module_exit(test_clean);
MODULE_LICENSE("GPL");