diff options
| author | liuyang <[email protected]> | 2018-12-28 13:33:55 +0800 |
|---|---|---|
| committer | liuyang <[email protected]> | 2018-12-28 13:33:55 +0800 |
| commit | c0131ca066fc29c5f89d2c2836bd6e3226f4e978 (patch) | |
| tree | add2126548caf94156c472a4461dfa89adce9c5e | |
| parent | 9021bae92a74bc129485d3c0772b5906ea820715 (diff) | |
1、哈希表max_elem_num通过配置文件./kniconf/kni.conf配置文件中[main]章节htable_elem_num变量读取;
2、add_htable IPv6流量下增加统计
3、从tun读取数据在htable中找不到,只统计,不报错
| -rw-r--r-- | kni_comm.c | 1 | ||||
| -rw-r--r-- | kni_entry.c | 16 | ||||
| -rw-r--r-- | kni_intercept.c | 2 |
3 files changed, 17 insertions, 2 deletions
@@ -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); } |
