summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuyang <[email protected]>2018-12-28 13:33:55 +0800
committerliuyang <[email protected]>2018-12-28 13:33:55 +0800
commitc0131ca066fc29c5f89d2c2836bd6e3226f4e978 (patch)
treeadd2126548caf94156c472a4461dfa89adce9c5e
parent9021bae92a74bc129485d3c0772b5906ea820715 (diff)
1、哈希表max_elem_num通过配置文件./kniconf/kni.conf配置文件中[main]章节htable_elem_num变量读取;
2、add_htable IPv6流量下增加统计 3、从tun读取数据在htable中找不到,只统计,不报错
-rw-r--r--kni_comm.c1
-rw-r--r--kni_entry.c16
-rw-r--r--kni_intercept.c2
3 files changed, 17 insertions, 2 deletions
diff --git a/kni_comm.c b/kni_comm.c
index 1f6e6c5..50df496 100644
--- a/kni_comm.c
+++ b/kni_comm.c
@@ -602,6 +602,7 @@ int kni_filestate2_init()
g_kni_fs2_info.field_id[FS_REPLAY_WINDOW]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"replay_win");
g_kni_fs2_info.field_id[FS_HTABLE_ADD]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"add_htab");
g_kni_fs2_info.field_id[FS_HTABLE_DEL]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"del_htab");
+
g_kni_fs2_info.metric_tun_read=FS_register_histogram(g_kni_fs2_info.handler, FS_CALC_CURRENT, "tun_read(us)" ,1,1000000,2);
g_kni_fs2_info.metric_forward=FS_register_histogram(g_kni_fs2_info.handler, FS_CALC_CURRENT, "forward(us)" ,1,1000000,2);
diff --git a/kni_entry.c b/kni_entry.c
index 3f75a42..f45caff 100644
--- a/kni_entry.c
+++ b/kni_entry.c
@@ -178,6 +178,11 @@ int kni_htable_del(const struct streaminfo* pstream,const void* a_packet)
kni_log_debug(RLOG_LV_FATAL,(char*)"MESA_htable_del",a_packet,"IPv6 MESA_htable_del() error,ret:%d",ret);
return -1;
}
+ else
+ {
+ kni_filestate2_set(pstream->threadnum,FS_HTABLE_DEL,0,1);
+ }
+
}
@@ -250,6 +255,11 @@ int kni_htable_add(const struct streaminfo* pstream,const void* a_packet,struct
kni_log_debug(RLOG_LV_FATAL,(char*)"kni_htable_add",a_packet,"IPv6 MESA_htable_add() error,ret:%d",ret);
return -1;
}
+ else
+ {
+ kni_filestate2_set(pstream->threadnum,FS_HTABLE_ADD,0,1);
+ }
+
}
@@ -1404,6 +1414,10 @@ int init_profile_info()
int init_kni_stat_htable()
{
+ int htable_elem_num = 0;
+
+ MESA_load_profile_int_def((char*)KNI_CONF_FILENAME,(char*)KNI_MAIN_MODE,(char*)"htable_elem_num",&htable_elem_num,KNI_HTABLE_MAXNUM);
+
MESA_htable_create_args_t hash_frags;
memset(&hash_frags,0,sizeof(hash_frags));
@@ -1411,7 +1425,7 @@ int init_kni_stat_htable()
hash_frags.thread_safe=KNI_THREAD_SAFE;
hash_frags.recursive=1;
hash_frags.hash_slot_size=KNI_HTABLE_SIZE;
- hash_frags.max_elem_num=KNI_HTABLE_MAXNUM;
+ hash_frags.max_elem_num=htable_elem_num;
hash_frags.eliminate_type=HASH_ELIMINATE_ALGO_FIFO;
hash_frags.expire_time=0;
hash_frags.key_comp=NULL;
diff --git a/kni_intercept.c b/kni_intercept.c
index 220e026..d3f5705 100644
--- a/kni_intercept.c
+++ b/kni_intercept.c
@@ -812,7 +812,7 @@ int kni_process_readdata(int thread_seq,int sendpkt_threadid,int buflen,char* bu
}
else
{
- kni_log_debug(RLOG_LV_FATAL,(char*)"kni_readtun_htable_cb_v4",buf,(const char*)"kni_readtun_htable_cb_v4 not found!");
+// kni_log_debug(RLOG_LV_FATAL,(char*)"kni_readtun_htable_cb_v4",buf,(const char*)"kni_readtun_htable_cb_v4 not found!");
kni_filestate2_set(thread_seq,FS_DROP_NOTIN_HTABLE,0,1);
}