1、增加判断是否是syn建立连接判断 2、增加version信息通过nm -d 显示
This commit is contained in:
@@ -71,6 +71,9 @@ struct kni_tcpopt_info{
|
|||||||
#define KNI_FS_LINE_MAX 256
|
#define KNI_FS_LINE_MAX 256
|
||||||
enum kni_field{
|
enum kni_field{
|
||||||
KNI_FIELD_BYP_INTCPERR,
|
KNI_FIELD_BYP_INTCPERR,
|
||||||
|
//intercept error link mode
|
||||||
|
KNI_FIELD_INTCPERR_GET_LINK_MODE_ERR,
|
||||||
|
KNI_FIELD_INTCPERR_NOT_LINK_MODE_BYSYN,
|
||||||
//intercept error
|
//intercept error
|
||||||
KNI_FIELD_INTCPERR_ASYM_ROUTING,
|
KNI_FIELD_INTCPERR_ASYM_ROUTING,
|
||||||
KNI_FIELD_INTCPERR_NO_SYN,
|
KNI_FIELD_INTCPERR_NO_SYN,
|
||||||
|
|||||||
@@ -34,6 +34,29 @@ extern "C" {
|
|||||||
#include "kni_pxy_tcp_option.h"
|
#include "kni_pxy_tcp_option.h"
|
||||||
#include "kni_dynamic_bypass.h"
|
#include "kni_dynamic_bypass.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define GIT_VERSION_CATTER(v) __attribute__((__used__)) const char * GIT_VERSION_##v = NULL
|
||||||
|
#define GIT_VERSION_EXPEND(v) GIT_VERSION_CATTER(v)
|
||||||
|
|
||||||
|
/* VERSION TAG */
|
||||||
|
#ifdef KNI_VAR_VERSION
|
||||||
|
GIT_VERSION_EXPEND(KNI_VAR_VERSION);
|
||||||
|
#else
|
||||||
|
static __attribute__((__used__)) const char * GIT_VERSION_UNKNOWN = NULL;
|
||||||
|
#endif
|
||||||
|
#undef GIT_VERSION_CATTER
|
||||||
|
#undef GIT_VERSION_EXPEND
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
struct kni_handle *g_kni_handle = NULL;
|
struct kni_handle *g_kni_handle = NULL;
|
||||||
struct kni_field_stat_handle *g_kni_fs_handle = NULL;
|
struct kni_field_stat_handle *g_kni_fs_handle = NULL;
|
||||||
int *arr_last_tfe_dispatch_index = NULL;
|
int *arr_last_tfe_dispatch_index = NULL;
|
||||||
@@ -1014,6 +1037,22 @@ static int first_data_intercept(struct streaminfo *stream, struct pme_info *pmei
|
|||||||
void *logger = g_kni_handle->local_logger;
|
void *logger = g_kni_handle->local_logger;
|
||||||
char *buff = NULL;
|
char *buff = NULL;
|
||||||
int ret, len;
|
int ret, len;
|
||||||
|
//intercept_error: TCP CTEAT LINK NOT BYSYN or TCP_CREATE_LINK_MODE error
|
||||||
|
unsigned char intercept_stream_link_mode;
|
||||||
|
int intercept_stream_link_mode_len = 1;
|
||||||
|
ret=MESA_get_stream_opt(stream, MSO_TCP_CREATE_LINK_MODE, (void *)&intercept_stream_link_mode, &intercept_stream_link_mode_len);
|
||||||
|
if(ret == 0){
|
||||||
|
if(intercept_stream_link_mode != TCP_CTEAT_LINK_BYSYN){
|
||||||
|
KNI_LOG_DEBUG(logger, "Intercept error: TCP_CREATE_LINK_MODE is not BYSYN, link_mode=%d, link_mode_len=%d,stream traceid = %s, stream addr = %s", intercept_stream_link_mode,intercept_stream_link_mode_len,pmeinfo->stream_traceid, pmeinfo->stream_addr);
|
||||||
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_INTCPERR_NOT_LINK_MODE_BYSYN], 0, FS_OP_ADD, 1);
|
||||||
|
goto error_out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
KNI_LOG_DEBUG(logger, "Intercept error: get TCP_CREATE_LINK_MODE error, ret = %d, stream traceid = %s, stream addr = %s",ret, pmeinfo->stream_traceid, pmeinfo->stream_addr);
|
||||||
|
FS_operate(g_kni_fs_handle->handle, g_kni_fs_handle->fields[KNI_FIELD_INTCPERR_GET_LINK_MODE_ERR], 0, FS_OP_ADD, 1);
|
||||||
|
goto error_out;
|
||||||
|
}
|
||||||
//intercept_error: no tfe
|
//intercept_error: no tfe
|
||||||
if(tsg_diagnose_judge_streamshunt(pmeinfo->maat_result.config_id,pmeinfo) == 0) // tsg diagnose shunt
|
if(tsg_diagnose_judge_streamshunt(pmeinfo->maat_result.config_id,pmeinfo) == 0) // tsg diagnose shunt
|
||||||
pmeinfo->tfe_id = tfe_mgr_alive_node_get(g_kni_handle->_tfe_mgr, thread_seq);
|
pmeinfo->tfe_id = tfe_mgr_alive_node_get(g_kni_handle->_tfe_mgr, thread_seq);
|
||||||
@@ -2004,6 +2043,9 @@ static struct kni_field_stat_handle * fs_init(const char *profile){
|
|||||||
|
|
||||||
//bypass stream
|
//bypass stream
|
||||||
fs_handle->fields[KNI_FIELD_BYP_INTCPERR] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "byp_intcp_err");
|
fs_handle->fields[KNI_FIELD_BYP_INTCPERR] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "byp_intcp_err");
|
||||||
|
//intercept error link mode
|
||||||
|
fs_handle->fields[KNI_FIELD_INTCPERR_GET_LINK_MODE_ERR] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "e_get_link_mode_err");
|
||||||
|
fs_handle->fields[KNI_FIELD_INTCPERR_NOT_LINK_MODE_BYSYN] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "e_no_link_mode_bysyn");
|
||||||
//intercept_error
|
//intercept_error
|
||||||
fs_handle->fields[KNI_FIELD_INTCPERR_ASYM_ROUTING] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "e_asym_route");
|
fs_handle->fields[KNI_FIELD_INTCPERR_ASYM_ROUTING] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "e_asym_route");
|
||||||
fs_handle->fields[KNI_FIELD_INTCPERR_NO_SYN] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "e_no_syn");
|
fs_handle->fields[KNI_FIELD_INTCPERR_NO_SYN] = FS_register(handle, FS_STYLE_FIELD, FS_CALC_CURRENT, "e_no_syn");
|
||||||
|
|||||||
Reference in New Issue
Block a user