更改field stat输出,输出内容详见kni wiki日志说明
This commit is contained in:
71
kni_comm.c
71
kni_comm.c
@@ -14,10 +14,10 @@
|
|||||||
#include "kni_comm.h"
|
#include "kni_comm.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
const char *g_kni_fs2_name[FS2_COLUMN_NUM] =
|
const char *g_kni_fs2_name[FS2_COLUMN_NUM] =
|
||||||
{
|
{
|
||||||
"TAPALL",
|
"TCPALL",
|
||||||
"UDP",
|
"UDP",
|
||||||
"IP",
|
"IP",
|
||||||
"WHITE_IP",
|
"WHITE_IP",
|
||||||
@@ -30,13 +30,13 @@ const char *g_kni_fs2_name[FS2_COLUMN_NUM] =
|
|||||||
"NOT_PROC",
|
"NOT_PROC",
|
||||||
"TUN_WRITE",
|
"TUN_WRITE",
|
||||||
"TUN_READ",
|
"TUN_READ",
|
||||||
"SEND_MASION",
|
"SEND_MARSIO",
|
||||||
"CLIENT_HELLO",
|
"CLIENT_HELLO",
|
||||||
"SSL_SNI(P)",
|
"SSL_SNI(P)",
|
||||||
"D_IPV6_OPT",
|
"D_IPV6_OPT",
|
||||||
"D_NOT_HTABLE",
|
"D_NOT_HTABLE",
|
||||||
"D_NOT_IPV4/6",
|
"D_NOT_IPV4/6_S",
|
||||||
"D_NOT_IPV4/6",
|
"D_NOT_IPV4/6_T",
|
||||||
"D_E_ADDHTABLE",
|
"D_E_ADDHTABLE",
|
||||||
"D_OTHER",
|
"D_OTHER",
|
||||||
"REPR_TOTAL",
|
"REPR_TOTAL",
|
||||||
@@ -61,7 +61,7 @@ const char *g_kni_fs2_name[FS2_COLUMN_NUM] =
|
|||||||
"HTABLE_ADD",
|
"HTABLE_ADD",
|
||||||
"HTABLE_DEL"
|
"HTABLE_DEL"
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
char* kni_memncasemem(const char *strsrc,int len1,const char *substr,int len2)
|
char* kni_memncasemem(const char *strsrc,int len1,const char *substr,int len2)
|
||||||
{
|
{
|
||||||
@@ -161,10 +161,9 @@ int kni_log_info(char* module,const struct layer_addr* addr,unsigned short proto
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//TODO:LEVEL
|
|
||||||
int kni_log_debug(int level,char* module,const void* a_packet,const char* format,...)
|
int kni_log_debug(int level,char* module,const void* a_packet,const char* format,...)
|
||||||
{
|
{
|
||||||
// if((a_packet == NULL))
|
if((a_packet == NULL) || (level<g_kni_comminfo.logger_level))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -486,7 +485,7 @@ int kni_filestate2_set(int thread_seq,enum kni_FS_COLUME colum_index,int bytes,i
|
|||||||
|
|
||||||
int kni_filestate2_init()
|
int kni_filestate2_init()
|
||||||
{
|
{
|
||||||
int i=0;
|
// int i=0;
|
||||||
// int j=0;
|
// int j=0;
|
||||||
int value=1;
|
int value=1;
|
||||||
unsigned int fs2_sport=0;
|
unsigned int fs2_sport=0;
|
||||||
@@ -510,11 +509,61 @@ int kni_filestate2_init()
|
|||||||
FS_set_para(g_kni_fs2_info.handler, STATS_SERVER_IP, fs2_sip, strlen(fs2_sip)+1);
|
FS_set_para(g_kni_fs2_info.handler, STATS_SERVER_IP, fs2_sip, strlen(fs2_sip)+1);
|
||||||
FS_set_para(g_kni_fs2_info.handler, STATS_SERVER_PORT,&fs2_sport,sizeof(int));
|
FS_set_para(g_kni_fs2_info.handler, STATS_SERVER_PORT,&fs2_sport,sizeof(int));
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
for(i=0;i<FS2_COLUMN_NUM;i++)
|
for(i=0;i<FS2_COLUMN_NUM;i++)
|
||||||
{
|
{
|
||||||
g_kni_fs2_info.column_id[i]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,g_kni_fs2_name[i]);
|
g_kni_fs2_info.column_id[i]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,g_kni_fs2_name[i]);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
g_kni_fs2_info.field_id[FS_PENDING]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_pending");
|
||||||
|
g_kni_fs2_info.field_id[FS_CLOSE_TIMEOUT]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_cls_to");
|
||||||
|
g_kni_fs2_info.field_id[FS_CLOSE_FIN]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_cls_fin");
|
||||||
|
g_kni_fs2_info.field_id[FS_CLOSE_DROPME]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_cls_dropme");
|
||||||
|
g_kni_fs2_info.field_id[FS_HTTP]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_http");
|
||||||
|
g_kni_fs2_info.field_id[FS_SSL]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_ssl");
|
||||||
|
g_kni_fs2_info.field_id[FS_CLIENT_HELLO]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_hello");
|
||||||
|
g_kni_fs2_info.field_id[FS_SNI]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_sni");
|
||||||
|
g_kni_fs2_info.field_id[FS_NOT_HTTP_SSL]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_not_identify");
|
||||||
|
g_kni_fs2_info.field_id[FS_WHITELIST]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_whitelist");
|
||||||
|
g_kni_fs2_info.field_id[FS_INTERCEPT]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_intercept");
|
||||||
|
g_kni_fs2_info.field_id[FS_RATELIMIT]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_ratelimit");
|
||||||
|
g_kni_fs2_info.field_id[FS_NOT_HIT]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"link_not_hit");
|
||||||
|
g_kni_fs2_info.field_id[FS_REPAIR_TOTAL]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"repair_total");
|
||||||
|
g_kni_fs2_info.field_id[FS_REPAIR_SOCK_ERR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"repair_sock_err");
|
||||||
|
g_kni_fs2_info.field_id[FS_REPAIR_SET_ERR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"repair_set_err");
|
||||||
|
g_kni_fs2_info.field_id[FS_REPAIR_JOINLQ_ERR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"repair_e_joinq");
|
||||||
|
g_kni_fs2_info.field_id[FS_REPAIR_SEND_SUCC]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"repair_send");
|
||||||
|
g_kni_fs2_info.field_id[FS_REPAIR_SEND_ERR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"repair_send_err");
|
||||||
|
g_kni_fs2_info.field_id[FS_PKT_ADD_LQ_SUCC]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"pkt_qin");
|
||||||
|
g_kni_fs2_info.field_id[FS_PKT_ADD_LQ_ERR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"pkt_qin_err");
|
||||||
|
g_kni_fs2_info.field_id[FS_PKT_GET_LQ_SUCC]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"pkt_qout");
|
||||||
|
g_kni_fs2_info.field_id[FS_PKT_GET_LQ_ERR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"pkt_qout_err");
|
||||||
|
g_kni_fs2_info.field_id[FS_WR_PKTS]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"wr_pkts");
|
||||||
|
g_kni_fs2_info.field_id[FS_WR_ERR_PKTS]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"wr_err_pkts");
|
||||||
|
g_kni_fs2_info.field_id[FS_WR_BYTES]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"wr_bytes");
|
||||||
|
g_kni_fs2_info.field_id[FS_RD_PKTS]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"rd_pkts");
|
||||||
|
g_kni_fs2_info.field_id[FS_RD_BYTES]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"rd_bytes");
|
||||||
|
g_kni_fs2_info.field_id[FS_RX_PKTS]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"rx_pkts");
|
||||||
|
g_kni_fs2_info.field_id[FS_RX_BYTES]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"rx_bytes");
|
||||||
|
g_kni_fs2_info.field_id[FS_TX_PKTS]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"tx_pkts");
|
||||||
|
g_kni_fs2_info.field_id[FS_TX_BYTES]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"tx_bytes");
|
||||||
|
g_kni_fs2_info.field_id[FS_DROP_IPV6OPT]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"d_ipv6_opt");
|
||||||
|
g_kni_fs2_info.field_id[FS_DROP_NOTIN_HTABLE]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"d_notin_htab");
|
||||||
|
g_kni_fs2_info.field_id[FS_DROP_NOTIPV46_SAPP]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"d_not_ipv46_s");
|
||||||
|
g_kni_fs2_info.field_id[FS_DROP_NOTIPV46_TUN]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"d_not_ipv46_t");
|
||||||
|
g_kni_fs2_info.field_id[FS_DROP_ADDHTABLE_ERROR]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"d_add_htal_err");
|
||||||
|
g_kni_fs2_info.field_id[FS_PMENUM]=FS_register(g_kni_fs2_info.handler, FS_STYLE_FIELD, FS_CALC_CURRENT,"pme_num");
|
||||||
|
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_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);
|
g_kni_fs2_info.metric_forward=FS_register_histogram(g_kni_fs2_info.handler, FS_CALC_CURRENT, "forward(us)" ,1,1000000,2);
|
||||||
g_kni_fs2_info.metric_sapp_proc=FS_register_histogram(g_kni_fs2_info.handler, FS_CALC_CURRENT, "sapp_proc(us)" ,1,1000000,2);
|
g_kni_fs2_info.metric_sapp_proc=FS_register_histogram(g_kni_fs2_info.handler, FS_CALC_CURRENT, "sapp_proc(us)" ,1,1000000,2);
|
||||||
@@ -551,7 +600,7 @@ void* kni_filestat2(void* arg)
|
|||||||
column_value[i]+=g_kni_fs2_info.column_value_pkt[j][i];
|
column_value[i]+=g_kni_fs2_info.column_value_pkt[j][i];
|
||||||
}
|
}
|
||||||
|
|
||||||
FS_operate(g_kni_fs2_info.handler,g_kni_fs2_info.column_id[i], 0,FS_OP_SET,column_value[i]);
|
FS_operate(g_kni_fs2_info.handler,g_kni_fs2_info.field_id[i], 0,FS_OP_SET,column_value[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
sleep(1);
|
sleep(1);
|
||||||
|
|||||||
92
kni_comm.h
92
kni_comm.h
@@ -7,55 +7,55 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define FS2_COLUMN_NUM 43
|
//#define FS2_COLUMN_NUM 44
|
||||||
#define FS2_APPNAME "KNI"
|
#define FS2_APPNAME "KNI"
|
||||||
|
|
||||||
|
|
||||||
enum kni_FS_COLUME
|
enum kni_FS_COLUME
|
||||||
{
|
{
|
||||||
COLUME_TCPALL_ENTRY=0,
|
FS_PENDING=0,
|
||||||
COLUME_UDP_ENTRY,
|
FS_CLOSE_TIMEOUT,
|
||||||
COLUME_IP_ENTRY,
|
FS_CLOSE_FIN,
|
||||||
COLUME_WITELIST_IP,
|
FS_CLOSE_DROPME,
|
||||||
COLUME_WITELIST_DOMAIN,
|
FS_HTTP,
|
||||||
COLUME_INTERCEPT,
|
FS_SSL,
|
||||||
COLUME_RATELIMIT,
|
FS_CLIENT_HELLO,
|
||||||
COLUME_REPLACE,
|
FS_SNI,
|
||||||
COLUME_HTTP,
|
FS_NOT_HTTP_SSL,
|
||||||
COLUME_SSL,
|
FS_WHITELIST,
|
||||||
COLUME_TCP_NOT_HTTPSSL,
|
FS_INTERCEPT,
|
||||||
COLUME_TUN_WRITE,
|
FS_RATELIMIT,
|
||||||
COLUME_TUN_READ,
|
FS_NOT_HIT,
|
||||||
COLUME_SEND_PKT,
|
FS_REPAIR_TOTAL,
|
||||||
COLUME_CLIENTHELLO,
|
FS_REPAIR_SOCK_ERR,
|
||||||
COLUME_SNI,
|
FS_REPAIR_SET_ERR,
|
||||||
COLUME_DROP_IPV6OPT,
|
FS_REPAIR_JOINLQ_ERR,
|
||||||
COLUME_DROP_NOIN_HTABLE,
|
FS_REPAIR_SEND_SUCC,
|
||||||
COLUME_DROP_NOTIPV46_SAPP,
|
FS_REPAIR_SEND_ERR,
|
||||||
COLUME_DROP_NOTIPV46_TUN,
|
FS_PKT_ADD_LQ_SUCC,
|
||||||
COLUME_DROP_ADDHTABLE_ERROR,
|
FS_PKT_ADD_LQ_ERR,
|
||||||
COLUME_DROPPKT_OTHER,
|
FS_PKT_GET_LQ_SUCC,
|
||||||
COLUME_TCPREPAIR_TOTAL,
|
FS_PKT_GET_LQ_ERR,
|
||||||
COLUME_TCPREPAIR_SOCKET_ERR,
|
FS_WR_PKTS,
|
||||||
COLUME_TCPREPAIR_ERROR,
|
FS_WR_ERR_PKTS,
|
||||||
COLUME_TCPREPAIR_JOINLQ_ERR,
|
FS_WR_BYTES,
|
||||||
COLUME_TCPREPAIR_GETLQ_ERR,
|
FS_RD_PKTS,
|
||||||
COLUME_TCPREPAIR_SEND_SUCC,
|
FS_RD_BYTES,
|
||||||
COLUME_TCPREPAIR_SEND_ERR,
|
FS_RX_PKTS,
|
||||||
COLUME_ADD_LQUEUE_SUCC,
|
FS_RX_BYTES,
|
||||||
COLUME_ADD_LQUEUE_ERR,
|
FS_TX_PKTS,
|
||||||
COLUME_GET_LQUEUE_SUCC,
|
FS_TX_BYTES,
|
||||||
COLUME_GET_LQUEUE_ERR,
|
FS_DROP_IPV6OPT,
|
||||||
COLUME_WRITE_TUN_SUCC,
|
FS_DROP_NOTIN_HTABLE,
|
||||||
COLUME_WRITE_TUN_ERR,
|
FS_DROP_NOTIPV46_SAPP,
|
||||||
COLUME_PENDING,
|
FS_DROP_NOTIPV46_TUN,
|
||||||
COLUME_CLOSE_TIMEOUT,
|
FS_DROP_ADDHTABLE_ERROR,
|
||||||
COLUME_CLOSE_FIN,
|
FS_PMENUM,
|
||||||
COLUME_CLOSE_DROPME,
|
FS_REPLAY_WINDOW,
|
||||||
COLUME_PMENUM,
|
FS_HTABLE_ADD,
|
||||||
COLUME_REPLAY_WINDOW,
|
FS_HTABLE_DEL,
|
||||||
COLUME_HTABLE_ADD,
|
|
||||||
COLUME_HTABLE_DEL
|
|
||||||
|
FS2_COLUMN_NUM
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ enum kni_FS_COLUME
|
|||||||
struct kni_fs2_info
|
struct kni_fs2_info
|
||||||
{
|
{
|
||||||
screen_stat_handle_t handler;
|
screen_stat_handle_t handler;
|
||||||
int column_id[FS2_COLUMN_NUM];
|
int field_id[FS2_COLUMN_NUM];
|
||||||
unsigned long long column_value_pkt[KNI_MAX_THREADNUM][FS2_COLUMN_NUM];
|
unsigned long long column_value_pkt[KNI_MAX_THREADNUM][FS2_COLUMN_NUM];
|
||||||
unsigned long long column_value_bytes[KNI_MAX_THREADNUM][FS2_COLUMN_NUM];
|
unsigned long long column_value_bytes[KNI_MAX_THREADNUM][FS2_COLUMN_NUM];
|
||||||
int metric_tun_read;
|
int metric_tun_read;
|
||||||
|
|||||||
67
kni_entry.c
67
kni_entry.c
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int g_kni_version_VERSION_20181207;
|
int g_kni_version_VERSION_20181210;
|
||||||
|
|
||||||
struct kni_var_comm g_kni_comminfo;
|
struct kni_var_comm g_kni_comminfo;
|
||||||
struct kni_var_struct g_kni_structinfo;
|
struct kni_var_struct g_kni_structinfo;
|
||||||
@@ -150,7 +150,7 @@ int kni_htable_del(const struct streaminfo* pstream,const void* a_packet)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_HTABLE_DEL,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_HTABLE_DEL,0,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -222,7 +222,7 @@ int kni_htable_add(const struct streaminfo* pstream,const void* a_packet,struct
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_HTABLE_ADD,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_HTABLE_ADD,0,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -375,7 +375,7 @@ int kni_judge_ssl(int thread_seq,char* tcp_data,int tcp_datalen,char* sni,int* s
|
|||||||
ssl_body_len+=1;
|
ssl_body_len+=1;
|
||||||
|
|
||||||
*clienthello_flag = 1;
|
*clienthello_flag = 1;
|
||||||
kni_filestate2_set(thread_seq,COLUME_CLIENTHELLO,0,1);
|
kni_filestate2_set(thread_seq,FS_CLIENT_HELLO,0,1);
|
||||||
|
|
||||||
|
|
||||||
// memcpy(&len_in_body,&ssl_body[ssl_body_len],3);
|
// memcpy(&len_in_body,&ssl_body[ssl_body_len],3);
|
||||||
@@ -430,7 +430,7 @@ int kni_judge_ssl(int thread_seq,char* tcp_data,int tcp_datalen,char* sni,int* s
|
|||||||
if(type_in_extension==SSL_EXTENSION_TYPE_SNI)
|
if(type_in_extension==SSL_EXTENSION_TYPE_SNI)
|
||||||
{
|
{
|
||||||
*sni_flag = 1;
|
*sni_flag = 1;
|
||||||
kni_filestate2_set(thread_seq,COLUME_SNI,0,1);
|
kni_filestate2_set(thread_seq,FS_SNI,0,1);
|
||||||
|
|
||||||
if(ext_len>KNI_SNI_MAXLEN)
|
if(ext_len>KNI_SNI_MAXLEN)
|
||||||
{
|
{
|
||||||
@@ -486,16 +486,17 @@ int kni_protocol_identify(const struct streaminfo* pstream,const void* a_packet,
|
|||||||
|
|
||||||
if(kni_judge_http(pstream,domain,domain_len)==1)
|
if(kni_judge_http(pstream,domain,domain_len)==1)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_HTTP,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_HTTP,0,1);
|
||||||
return KNI_FLAG_HTTP;
|
return KNI_FLAG_HTTP;
|
||||||
}
|
}
|
||||||
else if(kni_judge_ssl(pstream->threadnum,tcp_data,tcp_datalen,domain,domain_len,&clienthello_flag,&sni_flag)==KNI_FLAG_SSL)
|
else if(kni_judge_ssl(pstream->threadnum,tcp_data,tcp_datalen,domain,domain_len,&clienthello_flag,&sni_flag)==KNI_FLAG_SSL)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_SSL,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_SSL,0,1);
|
||||||
return KNI_FLAG_SSL;
|
return KNI_FLAG_SSL;
|
||||||
}
|
}
|
||||||
else if((clienthello_flag == 1)&&(sni_flag == 0))
|
else if((clienthello_flag == 1)&&(sni_flag == 0))
|
||||||
{
|
{
|
||||||
|
kni_filestate2_set(pstream->threadnum,FS_SSL,0,1);
|
||||||
kni_log_debug(RLOG_LV_DEBUG,(char*)"SSL_IDENTIFY",(void*)a_packet,(char*)"this ssl has client_hello,but no sni!");
|
kni_log_debug(RLOG_LV_DEBUG,(char*)"SSL_IDENTIFY",(void*)a_packet,(char*)"this ssl has client_hello,but no sni!");
|
||||||
return KNI_FLAG_SSL;
|
return KNI_FLAG_SSL;
|
||||||
}
|
}
|
||||||
@@ -560,14 +561,14 @@ char kni_first_tcpdata(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
switch(pmeinfo->action)
|
switch(pmeinfo->action)
|
||||||
{
|
{
|
||||||
case KNI_ACTION_WHITELIST:
|
case KNI_ACTION_WHITELIST:
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_WITELIST_DOMAIN,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_WHITELIST,0,1);
|
||||||
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pmeinfo->protocol,domain,(char*)"WHITE_LIST_DOMAIN",(char*)"BYPASS",pmeinfo);
|
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pmeinfo->protocol,domain,(char*)"WHITE_LIST_DOMAIN",(char*)"BYPASS",pmeinfo);
|
||||||
|
|
||||||
pmeinfo->protocol=KNI_FLAG_NOTPROC;
|
pmeinfo->protocol=KNI_FLAG_NOTPROC;
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
case KNI_ACTION_RATELIMIT:
|
case KNI_ACTION_RATELIMIT:
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_RATELIMIT,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_RATELIMIT,0,1);
|
||||||
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pstream->type,NULL,(char*)"RATELIMITE",(char*)"RATELIMITE",pmeinfo);
|
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pstream->type,NULL,(char*)"RATELIMITE",(char*)"RATELIMITE",pmeinfo);
|
||||||
ret = kni_process_ratelimit(pstream->threadnum,a_packet,pmeinfo);
|
ret = kni_process_ratelimit(pstream->threadnum,a_packet,pmeinfo);
|
||||||
return ret;
|
return ret;
|
||||||
@@ -576,6 +577,7 @@ char kni_first_tcpdata(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
case KNI_ACTION_HALFHIT:
|
case KNI_ACTION_HALFHIT:
|
||||||
if(g_kni_switch_info.maat_default_mode==KNI_DEFAULT_MODE_BYPASS)
|
if(g_kni_switch_info.maat_default_mode==KNI_DEFAULT_MODE_BYPASS)
|
||||||
{
|
{
|
||||||
|
kni_filestate2_set(pstream->threadnum,FS_NOT_HIT,0,1);
|
||||||
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pmeinfo->protocol,domain,(char*)"NOT_HIT",(char*)"BYPASS",pmeinfo);
|
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pmeinfo->protocol,domain,(char*)"NOT_HIT",(char*)"BYPASS",pmeinfo);
|
||||||
pmeinfo->protocol=KNI_FLAG_NOTPROC;
|
pmeinfo->protocol=KNI_FLAG_NOTPROC;
|
||||||
pmeinfo->action = KNI_ACTION_NONE;
|
pmeinfo->action = KNI_ACTION_NONE;
|
||||||
@@ -592,12 +594,12 @@ char kni_first_tcpdata(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_INTERCEPT,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_INTERCEPT,0,1);
|
||||||
|
|
||||||
if(kni_htable_add(pstream,a_packet,pmeinfo) < 0)
|
if(kni_htable_add(pstream,a_packet,pmeinfo) < 0)
|
||||||
{
|
{
|
||||||
pmeinfo->action = KNI_ACTION_NOTPROC;
|
pmeinfo->action = KNI_ACTION_NOTPROC;
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_DROP_ADDHTABLE_ERROR,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_DROP_ADDHTABLE_ERROR,0,1);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -629,7 +631,7 @@ char kni_first_tcpdata(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_TCP_NOT_HTTPSSL,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_NOT_HTTP_SSL,0,1);
|
||||||
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pmeinfo->protocol,NULL,(char*)"NOT_HTTP_SSL",(char*)"BYPASS",pmeinfo);
|
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),pmeinfo->protocol,NULL,(char*)"NOT_HTTP_SSL",(char*)"BYPASS",pmeinfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -671,16 +673,18 @@ char kni_pending_opstate(const struct streaminfo* pstream,struct kni_pme_info* p
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_DROP_NOTIPV46_SAPP,0,1);
|
kni_filestate2_set(thread_seq,FS_DROP_NOTIPV46_SAPP,0,1);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kni_filestate2_set(thread_seq,FS_RX_BYTES,0,iplen);
|
||||||
|
|
||||||
|
|
||||||
kni_scan_ip((struct ipaddr*)&(pstream->addr),thread_seq,protocol,pmeinfo);
|
kni_scan_ip((struct ipaddr*)&(pstream->addr),thread_seq,protocol,pmeinfo);
|
||||||
if(pmeinfo->action==KNI_ACTION_WHITELIST)
|
if(pmeinfo->action==KNI_ACTION_WHITELIST)
|
||||||
{
|
{
|
||||||
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),0,NULL,(char*)"WHITE_LIST_IP",(char*)"BYPASS",pmeinfo);
|
kni_log_info((char*)KNI_MODULE_INFO,&(pstream->addr),0,NULL,(char*)"WHITE_LIST_IP",(char*)"BYPASS",pmeinfo);
|
||||||
kni_filestate2_set(thread_seq,COLUME_WITELIST_IP,0,1);
|
kni_filestate2_set(thread_seq,FS_WHITELIST,0,1);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,10 +769,12 @@ char kni_data_opstate(const struct streaminfo* pstream,struct kni_pme_info* pmei
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_DROP_NOTIPV46_SAPP,0,1);
|
kni_filestate2_set(thread_seq,FS_DROP_NOTIPV46_SAPP,0,1);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kni_filestate2_set(thread_seq,FS_RX_BYTES,0,iplen);
|
||||||
|
|
||||||
if(protocol== PROTO_TYPE_TCP)
|
if(protocol== PROTO_TYPE_TCP)
|
||||||
{
|
{
|
||||||
if(pmeinfo->protocol==KNI_FLAG_UNKNOW)
|
if(pmeinfo->protocol==KNI_FLAG_UNKNOW)
|
||||||
@@ -792,7 +798,6 @@ char kni_data_opstate(const struct streaminfo* pstream,struct kni_pme_info* pmei
|
|||||||
|
|
||||||
if((pmeinfo->action == KNI_ACTION_MONITOR) && ((pmeinfo->protocol==KNI_FLAG_HTTP)||(pmeinfo->protocol==KNI_FLAG_SSL)))
|
if((pmeinfo->action == KNI_ACTION_MONITOR) && ((pmeinfo->protocol==KNI_FLAG_HTTP)||(pmeinfo->protocol==KNI_FLAG_SSL)))
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_INTERCEPT,0,1);
|
|
||||||
if(g_kni_switch_info.write_listq_switch == 1)
|
if(g_kni_switch_info.write_listq_switch == 1)
|
||||||
{
|
{
|
||||||
if(pmeinfo->tun_index<0)
|
if(pmeinfo->tun_index<0)
|
||||||
@@ -851,7 +856,7 @@ char kni_close_opstate(const struct streaminfo* pstream,struct kni_pme_info* pme
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_HTABLE_DEL,0,1);
|
kni_filestate2_set(pstream->threadnum,FS_HTABLE_DEL,0,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -893,7 +898,7 @@ extern "C" char kni_udp_entry(const struct streaminfo* pstream,void** pme,int th
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_UDP_ENTRY,0,1);
|
// kni_filestate2_set(thread_seq,FS_UDP,0,1);
|
||||||
|
|
||||||
switch(pstream->opstate)
|
switch(pstream->opstate)
|
||||||
{
|
{
|
||||||
@@ -947,19 +952,19 @@ extern "C" char kni_tcpall_entry(const struct streaminfo* pstream,void** pme,int
|
|||||||
if((a_packet != NULL) && (ipv6_hdr->ip6_nex_hdr != NEXTHDR_TCP))
|
if((a_packet != NULL) && (ipv6_hdr->ip6_nex_hdr != NEXTHDR_TCP))
|
||||||
{
|
{
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_DROP_IPV6OPT,0,1);
|
kni_filestate2_set(thread_seq,FS_DROP_IPV6OPT,0,1);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_TCPALL_ENTRY,0,1);
|
kni_filestate2_set(thread_seq,FS_RX_PKTS,0,1);
|
||||||
|
|
||||||
|
|
||||||
switch(pstream->pktstate)
|
switch(pstream->pktstate)
|
||||||
{
|
{
|
||||||
case OP_STATE_PENDING:
|
case OP_STATE_PENDING:
|
||||||
kni_filestate2_set(thread_seq,COLUME_PENDING,0,1);
|
kni_filestate2_set(thread_seq,FS_PENDING,0,1);
|
||||||
kni_filestate2_set(thread_seq,COLUME_PMENUM,0,1);
|
kni_filestate2_set(thread_seq,FS_PMENUM,0,1);
|
||||||
kni_init_pmeinfo(pme);
|
kni_init_pmeinfo(pme);
|
||||||
ret=kni_pending_opstate(pstream,(struct kni_pme_info*)*pme,thread_seq,a_packet,PROTO_TYPE_TCP);
|
ret=kni_pending_opstate(pstream,(struct kni_pme_info*)*pme,thread_seq,a_packet,PROTO_TYPE_TCP);
|
||||||
break;
|
break;
|
||||||
@@ -971,11 +976,11 @@ extern "C" char kni_tcpall_entry(const struct streaminfo* pstream,void** pme,int
|
|||||||
case OP_STATE_CLOSE:
|
case OP_STATE_CLOSE:
|
||||||
if(a_packet == NULL)
|
if(a_packet == NULL)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_CLOSE_TIMEOUT,0,1);
|
kni_filestate2_set(thread_seq,FS_CLOSE_TIMEOUT,0,1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_CLOSE_FIN,0,1);
|
kni_filestate2_set(thread_seq,FS_CLOSE_FIN,0,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret=kni_close_opstate(pstream,(struct kni_pme_info*)*pme,thread_seq,a_packet,PROTO_TYPE_TCP);
|
ret=kni_close_opstate(pstream,(struct kni_pme_info*)*pme,thread_seq,a_packet,PROTO_TYPE_TCP);
|
||||||
@@ -987,13 +992,13 @@ extern "C" char kni_tcpall_entry(const struct streaminfo* pstream,void** pme,int
|
|||||||
|
|
||||||
if((ret&APP_STATE_DROPME)&&(*pme!=NULL))
|
if((ret&APP_STATE_DROPME)&&(*pme!=NULL))
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_PMENUM,0,-1);
|
kni_filestate2_set(thread_seq,FS_PMENUM,0,-1);
|
||||||
kni_free_pmeinfo(pme);
|
kni_free_pmeinfo(pme);
|
||||||
*pme=NULL;
|
*pme=NULL;
|
||||||
|
|
||||||
if(pstream->pktstate != OP_STATE_CLOSE)
|
if(pstream->pktstate != OP_STATE_CLOSE)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_CLOSE_DROPME,0,1);
|
kni_filestate2_set(thread_seq,FS_CLOSE_DROPME,0,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1031,7 +1036,7 @@ extern "C" char kni_ipv4_entry(const struct streaminfo *pstream,unsigned char ro
|
|||||||
return APP_STATE_DROPME;
|
return APP_STATE_DROPME;
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_IP_ENTRY,0,1);
|
// kni_filestate2_set(thread_seq,FS_IP,0,1);
|
||||||
|
|
||||||
|
|
||||||
char ret = APP_STATE_GIVEME;
|
char ret = APP_STATE_GIVEME;
|
||||||
@@ -1091,7 +1096,7 @@ extern "C" char kni_ipv6_entry(const struct streaminfo *pstream,unsigned char ro
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_IP_ENTRY,0,1);
|
// kni_filestate2_set(thread_seq,FS_IP,0,1);
|
||||||
|
|
||||||
|
|
||||||
addr.addrtype = ADDR_TYPE_IPV6;
|
addr.addrtype = ADDR_TYPE_IPV6;
|
||||||
@@ -1267,15 +1272,15 @@ int init_kni_stat_htable()
|
|||||||
|
|
||||||
int init_kni_runtimelog()
|
int init_kni_runtimelog()
|
||||||
{
|
{
|
||||||
int logger_level;
|
// int logger_level;
|
||||||
char logger_filepath[KNI_CONF_MAXLEN]={0};
|
char logger_filepath[KNI_CONF_MAXLEN]={0};
|
||||||
|
|
||||||
|
|
||||||
MESA_load_profile_int_def((char*)KNI_CONF_FILENAME,(char*)KNI_MAIN_MODE,(char*)"logger_level",&logger_level,RLOG_LV_INFO);
|
MESA_load_profile_int_def((char*)KNI_CONF_FILENAME,(char*)KNI_MAIN_MODE,(char*)"logger_level",&(g_kni_comminfo.logger_level),RLOG_LV_INFO);
|
||||||
MESA_load_profile_string_def((char*)KNI_CONF_FILENAME,(char*)KNI_MAIN_MODE,(char*)"logger_filepath",logger_filepath,KNI_CONF_MAXLEN,"./log/kni.log");
|
MESA_load_profile_string_def((char*)KNI_CONF_FILENAME,(char*)KNI_MAIN_MODE,(char*)"logger_filepath",logger_filepath,KNI_CONF_MAXLEN,"./log/kni.log");
|
||||||
|
|
||||||
|
|
||||||
g_kni_comminfo.logger=MESA_create_runtime_log_handle(logger_filepath,logger_level);
|
g_kni_comminfo.logger=MESA_create_runtime_log_handle(logger_filepath,g_kni_comminfo.logger_level);
|
||||||
if(g_kni_comminfo.logger==NULL)
|
if(g_kni_comminfo.logger==NULL)
|
||||||
{
|
{
|
||||||
printf("MESA_create_runtime_log_handle() error!exit...\n");
|
printf("MESA_create_runtime_log_handle() error!exit...\n");
|
||||||
|
|||||||
@@ -214,7 +214,6 @@ struct kni_repaired_fds
|
|||||||
int keyring;
|
int keyring;
|
||||||
};
|
};
|
||||||
|
|
||||||
//TODO
|
|
||||||
struct kni_inject_pkt
|
struct kni_inject_pkt
|
||||||
{
|
{
|
||||||
int addr_type;
|
int addr_type;
|
||||||
@@ -268,6 +267,7 @@ struct kni_var_comm
|
|||||||
int tun_threadnum;
|
int tun_threadnum;
|
||||||
int fd_domain;
|
int fd_domain;
|
||||||
int mark;
|
int mark;
|
||||||
|
int logger_level;
|
||||||
char tun_name[KNI_CONF_MAXLEN];
|
char tun_name[KNI_CONF_MAXLEN];
|
||||||
char domain_path[KNI_CONF_MAXLEN];
|
char domain_path[KNI_CONF_MAXLEN];
|
||||||
char card_in[KNI_CONF_MAXLEN];
|
char card_in[KNI_CONF_MAXLEN];
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ int kni_unixdomain_sendinfo()
|
|||||||
}
|
}
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
{
|
{
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &end);
|
clock_gettime(CLOCK_MONOTONIC, &end);
|
||||||
@@ -131,13 +131,13 @@ int kni_unixdomain_sendinfo()
|
|||||||
ret=kni_send_fds(g_kni_comminfo.fd_domain,to_send_fds);
|
ret=kni_send_fds(g_kni_comminfo.fd_domain,to_send_fds);
|
||||||
if(ret<0) //check errno
|
if(ret<0) //check errno
|
||||||
{
|
{
|
||||||
kni_filestate2_set(0,COLUME_TCPREPAIR_SEND_ERR,0,2);
|
kni_filestate2_set(0,FS_REPAIR_SEND_ERR,0,2);
|
||||||
g_kni_comminfo.kni_mode_cur=KNI_MODE_BYPASS;
|
g_kni_comminfo.kni_mode_cur=KNI_MODE_BYPASS;
|
||||||
close(to_send_fds.client_fd);
|
close(to_send_fds.client_fd);
|
||||||
close(to_send_fds.server_fd);
|
close(to_send_fds.server_fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
kni_filestate2_set(0,COLUME_TCPREPAIR_SEND_SUCC,0,2);
|
kni_filestate2_set(0,FS_REPAIR_SEND_SUCC,0,2);
|
||||||
|
|
||||||
close(to_send_fds.client_fd);
|
close(to_send_fds.client_fd);
|
||||||
close(to_send_fds.server_fd);
|
close(to_send_fds.server_fd);
|
||||||
@@ -421,12 +421,12 @@ char kni_add_lqueue(int addrtype,int thread_seq,char* send_buf,int send_buflen,c
|
|||||||
to_inject.buf = NULL;
|
to_inject.buf = NULL;
|
||||||
|
|
||||||
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
||||||
kni_filestate2_set(thread_seq,COLUME_ADD_LQUEUE_ERR,0,1);
|
kni_filestate2_set(thread_seq,FS_PKT_ADD_LQ_ERR,0,1);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_SENDFD,"kni_add_lqueue() error,ret:%d",ret);
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_SENDFD,"kni_add_lqueue() error,ret:%d",ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_ADD_LQUEUE_SUCC,0,1);
|
kni_filestate2_set(thread_seq,FS_PKT_ADD_LQ_SUCC,0,1);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -586,7 +586,7 @@ int kni_keepalive_replay_v6(struct stream_tuple4_v6* ipv6_addr,int iprever_flag,
|
|||||||
|
|
||||||
datainfo->wndprob_flag[index]=1;
|
datainfo->wndprob_flag[index]=1;
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_REPLAY_WINDOW,0,1);
|
kni_filestate2_set(thread_seq,FS_REPLAY_WINDOW,0,1);
|
||||||
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@@ -646,7 +646,7 @@ int kni_keepalive_replay(struct stream_tuple4_v4* ipv4_addr,int iprever_flag,str
|
|||||||
|
|
||||||
datainfo->wndprob_flag[index]=1;
|
datainfo->wndprob_flag[index]=1;
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_REPLAY_WINDOW,0,1);
|
kni_filestate2_set(thread_seq,FS_REPLAY_WINDOW,0,1);
|
||||||
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@@ -798,7 +798,8 @@ int kni_process_readdata(int thread_seq,int sendpkt_threadid,int buflen,char* bu
|
|||||||
MESA_htable_search_cb(g_kni_structinfo.htable_to_tun_v4,(unsigned char*)&ipv4_addr,sizeof(struct stream_tuple4_v4),kni_readtun_htable_cb_v4,(void*)&args,&result);
|
MESA_htable_search_cb(g_kni_structinfo.htable_to_tun_v4,(unsigned char*)&ipv4_addr,sizeof(struct stream_tuple4_v4),kni_readtun_htable_cb_v4,(void*)&args,&result);
|
||||||
if(result==1)
|
if(result==1)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_SEND_PKT,0,1);
|
kni_filestate2_set(thread_seq,FS_TX_PKTS,0,1);
|
||||||
|
kni_filestate2_set(thread_seq,FS_TX_BYTES,0,buflen);
|
||||||
|
|
||||||
if(g_kni_switch_info.sendpkt_mode == 1)
|
if(g_kni_switch_info.sendpkt_mode == 1)
|
||||||
{
|
{
|
||||||
@@ -812,7 +813,7 @@ int kni_process_readdata(int thread_seq,int sendpkt_threadid,int buflen,char* bu
|
|||||||
else
|
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,COLUME_DROP_NOIN_HTABLE,0,1);
|
kni_filestate2_set(thread_seq,FS_DROP_NOTIN_HTABLE,0,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -828,7 +829,8 @@ int kni_process_readdata(int thread_seq,int sendpkt_threadid,int buflen,char* bu
|
|||||||
MESA_htable_search_cb(g_kni_structinfo.htable_to_tun_v6,(unsigned char*)&ipv6_addr,sizeof(struct stream_tuple4_v6),kni_readtun_htable_cb_v6,(void*)&args,&result);
|
MESA_htable_search_cb(g_kni_structinfo.htable_to_tun_v6,(unsigned char*)&ipv6_addr,sizeof(struct stream_tuple4_v6),kni_readtun_htable_cb_v6,(void*)&args,&result);
|
||||||
if(result==1)
|
if(result==1)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_SEND_PKT,0,1);
|
kni_filestate2_set(thread_seq,FS_TX_PKTS,0,1);
|
||||||
|
kni_filestate2_set(thread_seq,FS_TX_BYTES,0,buflen);
|
||||||
|
|
||||||
if(g_kni_switch_info.sendpkt_mode == 1)
|
if(g_kni_switch_info.sendpkt_mode == 1)
|
||||||
{
|
{
|
||||||
@@ -842,13 +844,13 @@ int kni_process_readdata(int thread_seq,int sendpkt_threadid,int buflen,char* bu
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_DROP_NOIN_HTABLE,0,1);
|
kni_filestate2_set(thread_seq,FS_DROP_NOTIN_HTABLE,0,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_DROP_NOTIPV46_TUN,0,1);
|
kni_filestate2_set(thread_seq,FS_DROP_NOTIPV46_TUN,0,1);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger,RLOG_LV_FATAL,KNI_MODULE_SENDPKT,"kni_readdata,not ipv4 and not ipv6!");
|
MESA_handle_runtime_log(g_kni_comminfo.logger,RLOG_LV_FATAL,KNI_MODULE_SENDPKT,"kni_readdata,not ipv4 and not ipv6!");
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -873,7 +875,7 @@ int kni_process_writedata(int thread_seq)
|
|||||||
}
|
}
|
||||||
else if(ret<0)
|
else if(ret<0)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_GET_LQUEUE_ERR,0,1);
|
kni_filestate2_set(thread_seq,FS_PKT_GET_LQ_ERR,0,1);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,(char*)"kni_process_writedata","MESA_lqueue_try_get_tail() error!ret:%d,datalen:%d\n",ret,datainfo_len);
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,(char*)"kni_process_writedata","MESA_lqueue_try_get_tail() error!ret:%d,datalen:%d\n",ret,datainfo_len);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -886,7 +888,7 @@ int kni_process_writedata(int thread_seq)
|
|||||||
FS_operate(g_kni_fs2_info.handler, g_kni_fs2_info.metric_qout_pkt,0,FS_OP_SET, elapse);
|
FS_operate(g_kni_fs2_info.handler, g_kni_fs2_info.metric_qout_pkt,0,FS_OP_SET, elapse);
|
||||||
|
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_GET_LQUEUE_SUCC,0,1);
|
kni_filestate2_set(thread_seq,FS_PKT_GET_LQ_SUCC,0,1);
|
||||||
|
|
||||||
tun_write_data_listq(g_kni_comminfo.fd_tun[thread_seq],datainfo.buf,datainfo.buflen,thread_seq);
|
tun_write_data_listq(g_kni_comminfo.fd_tun[thread_seq],datainfo.buf,datainfo.buflen,thread_seq);
|
||||||
|
|
||||||
@@ -953,21 +955,21 @@ char tun_write_data_listq(int fd,char* send_buf,int send_buflen,int thread_seq)
|
|||||||
succ_sendlen = write(fd, send_buf,send_buflen);
|
succ_sendlen = write(fd, send_buf,send_buflen);
|
||||||
if(succ_sendlen<0)
|
if(succ_sendlen<0)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_WRITE_TUN_ERR,0,1);
|
kni_filestate2_set(thread_seq,FS_WR_ERR_PKTS,0,1);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"write() error %d, %s",errno,strerror(errno));
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"write() error %d, %s",errno,strerror(errno));
|
||||||
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
||||||
}
|
}
|
||||||
else if(succ_sendlen<send_buflen)
|
else if(succ_sendlen<send_buflen)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_WRITE_TUN_ERR,0,1);
|
kni_filestate2_set(thread_seq,FS_WR_ERR_PKTS,0,1);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"succ_sendlen is %d,send_buflen is %d",succ_sendlen,send_buflen);
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"succ_sendlen is %d,send_buflen is %d",succ_sendlen,send_buflen);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(thread_seq,COLUME_WRITE_TUN_SUCC,0,1);
|
kni_filestate2_set(thread_seq,FS_WR_PKTS,0,1);
|
||||||
|
kni_filestate2_set(thread_seq,FS_WR_BYTES,0,send_buflen);
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_TUN_WRITE,0,1);
|
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &end);
|
clock_gettime(CLOCK_MONOTONIC, &end);
|
||||||
|
|
||||||
@@ -995,7 +997,7 @@ char tun_write_data(int fd, const char* send_buf, size_t send_buflen,struct stre
|
|||||||
{
|
{
|
||||||
kni_htable_del(pstream,(const void*)send_buf);
|
kni_htable_del(pstream,(const void*)send_buf);
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_WRITE_TUN_ERR,0,1);
|
kni_filestate2_set(thread_seq,FS_WR_ERR_PKTS,0,1);
|
||||||
// MESA_kill_tcp(pstream,(const void*)send_buf);
|
// MESA_kill_tcp(pstream,(const void*)send_buf);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"write() error %d, %s",errno,strerror(errno));
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"write() error %d, %s",errno,strerror(errno));
|
||||||
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
ret=APP_STATE_DROPPKT|APP_STATE_DROPME;
|
||||||
@@ -1004,11 +1006,16 @@ char tun_write_data(int fd, const char* send_buf, size_t send_buflen,struct stre
|
|||||||
{
|
{
|
||||||
kni_htable_del(pstream,(const void*)send_buf);
|
kni_htable_del(pstream,(const void*)send_buf);
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_WRITE_TUN_ERR,0,1);
|
kni_filestate2_set(thread_seq,FS_WR_ERR_PKTS,0,1);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"succ_sendlen is %d,send_buflen is %d",succ_sendlen,send_buflen);
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_WRITETUN,"succ_sendlen is %d,send_buflen is %d",succ_sendlen,send_buflen);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
kni_filestate2_set(thread_seq,FS_WR_PKTS,0,1);
|
||||||
|
kni_filestate2_set(thread_seq,FS_WR_BYTES,0,send_buflen);
|
||||||
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_TUN_WRITE,0,1);
|
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &end);
|
clock_gettime(CLOCK_MONOTONIC, &end);
|
||||||
|
|
||||||
@@ -1092,7 +1099,8 @@ void* pthread_process_tun(void* arg)
|
|||||||
elapse=(end.tv_sec-start.tv_sec)*1000000+(end.tv_nsec-start.tv_nsec)/1000;
|
elapse=(end.tv_sec-start.tv_sec)*1000000+(end.tv_nsec-start.tv_nsec)/1000;
|
||||||
FS_operate(g_kni_fs2_info.handler, g_kni_fs2_info.metric_tun_read, 0, FS_OP_SET, elapse);
|
FS_operate(g_kni_fs2_info.handler, g_kni_fs2_info.metric_tun_read, 0, FS_OP_SET, elapse);
|
||||||
start=end;
|
start=end;
|
||||||
kni_filestate2_set(thread_seq,COLUME_TUN_READ,0,1);
|
kni_filestate2_set(thread_seq,FS_RD_PKTS,0,1);
|
||||||
|
kni_filestate2_set(thread_seq,FS_RD_BYTES,0,recv_len);
|
||||||
kni_process_readdata(thread_seq,sendpkt_threadid,recv_len,recv_buf);
|
kni_process_readdata(thread_seq,sendpkt_threadid,recv_len,recv_buf);
|
||||||
clock_gettime(CLOCK_MONOTONIC, &end);
|
clock_gettime(CLOCK_MONOTONIC, &end);
|
||||||
elapse=(end.tv_sec-start.tv_sec)*1000000+(end.tv_nsec-start.tv_nsec)/1000;
|
elapse=(end.tv_sec-start.tv_sec)*1000000+(end.tv_nsec-start.tv_nsec)/1000;
|
||||||
@@ -1384,7 +1392,7 @@ int tcprepair_set_state(int sk,struct kni_tcp_state* tcp,struct sockaddr* client
|
|||||||
|
|
||||||
int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,struct kni_pme_info* pmeinfo,int protocol)
|
int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,struct kni_pme_info* pmeinfo,int protocol)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_TCPREPAIR_TOTAL,0,2);
|
kni_filestate2_set(pstream->threadnum,FS_REPAIR_TOTAL,0,2);
|
||||||
|
|
||||||
int ret=0;
|
int ret=0;
|
||||||
struct kni_repaired_fds repaired_fds;
|
struct kni_repaired_fds repaired_fds;
|
||||||
@@ -1416,7 +1424,7 @@ int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
}
|
}
|
||||||
if ((fd_client < 0)||(fd_server<0))
|
if ((fd_client < 0)||(fd_server<0))
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_TCPREPAIR_SOCKET_ERR,0,2);
|
kni_filestate2_set(pstream->threadnum,FS_REPAIR_SOCK_ERR,0,2);
|
||||||
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,"tcprepair_set_state","socket() error");
|
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,"tcprepair_set_state","socket() error");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -1429,7 +1437,7 @@ int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
ret=tcprepair_set_state(fd_client,&fake_server,server_addr,client_addr,pstream->addr.addrtype);
|
ret=tcprepair_set_state(fd_client,&fake_server,server_addr,client_addr,pstream->addr.addrtype);
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_TCPREPAIR_ERROR,0,2);
|
kni_filestate2_set(pstream->threadnum,FS_REPAIR_SET_ERR,0,2);
|
||||||
close(fd_client);
|
close(fd_client);
|
||||||
close(fd_server);
|
close(fd_server);
|
||||||
|
|
||||||
@@ -1442,7 +1450,7 @@ int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
ret=tcprepair_set_state(fd_server,&fake_client,client_addr,server_addr,pstream->addr.addrtype);
|
ret=tcprepair_set_state(fd_server,&fake_client,client_addr,server_addr,pstream->addr.addrtype);
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_TCPREPAIR_ERROR,0,2);
|
kni_filestate2_set(pstream->threadnum,FS_REPAIR_SET_ERR,0,2);
|
||||||
close(fd_client);
|
close(fd_client);
|
||||||
close(fd_server);
|
close(fd_server);
|
||||||
|
|
||||||
@@ -1464,7 +1472,7 @@ int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
ret=MESA_lqueue_join_tail(g_kni_structinfo.lqueue_send_fds,(void*)&repaired_fds,sizeof(repaired_fds));
|
ret=MESA_lqueue_join_tail(g_kni_structinfo.lqueue_send_fds,(void*)&repaired_fds,sizeof(repaired_fds));
|
||||||
if(ret <0)
|
if(ret <0)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(pstream->threadnum,COLUME_TCPREPAIR_JOINLQ_ERR,0,2);
|
kni_filestate2_set(pstream->threadnum,FS_REPAIR_JOINLQ_ERR,0,2);
|
||||||
|
|
||||||
close(fd_client);
|
close(fd_client);
|
||||||
close(fd_server);
|
close(fd_server);
|
||||||
@@ -1479,12 +1487,12 @@ int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,str
|
|||||||
ret=kni_send_fds(g_kni_comminfo.fd_domain,repaired_fds);
|
ret=kni_send_fds(g_kni_comminfo.fd_domain,repaired_fds);
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
{
|
{
|
||||||
kni_filestate2_set(0,COLUME_TCPREPAIR_SEND_ERR,0,2);
|
kni_filestate2_set(0,FS_REPAIR_SEND_ERR,0,2);
|
||||||
g_kni_comminfo.kni_mode_cur=KNI_MODE_BYPASS;
|
g_kni_comminfo.kni_mode_cur=KNI_MODE_BYPASS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kni_filestate2_set(0,COLUME_TCPREPAIR_SEND_SUCC,0,2);
|
kni_filestate2_set(0,FS_REPAIR_SEND_SUCC,0,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
close(fd_client);
|
close(fd_client);
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ char kni_process_ratelimit(int thread_seq,const void* a_packet,struct kni_pme_in
|
|||||||
return APP_STATE_DROPME;
|
return APP_STATE_DROPME;
|
||||||
}
|
}
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_RATELIMIT,0,1);
|
// kni_filestate2_set(thread_seq,FS_RATELIMIT,0,1);
|
||||||
|
|
||||||
char ret = APP_STATE_GIVEME;
|
char ret = APP_STATE_GIVEME;
|
||||||
struct kni_ratelimit_info* ratelimit_info = &(pmeinfo->ratelimit_info);
|
struct kni_ratelimit_info* ratelimit_info = &(pmeinfo->ratelimit_info);
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ char kni_process_replace(unsigned char dir,int thread_seq,const void* a_packet,s
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
kni_filestate2_set(thread_seq,COLUME_REPLACE,0,1);
|
// kni_filestate2_set(thread_seq,FS_REPLACE,0,1);
|
||||||
|
|
||||||
// char ret = APP_STATE_DROPPKT | APP_STATE_DROPME;
|
// char ret = APP_STATE_DROPPKT | APP_STATE_DROPME;
|
||||||
char ret = APP_STATE_DROPPKT | APP_STATE_GIVEME;
|
char ret = APP_STATE_DROPPKT | APP_STATE_GIVEME;
|
||||||
|
|||||||
Reference in New Issue
Block a user