diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ir_mctrl.cpp | 394 | ||||
| -rw-r--r-- | src/ir_mctrl.h | 11 |
2 files changed, 205 insertions, 200 deletions
diff --git a/src/ir_mctrl.cpp b/src/ir_mctrl.cpp index 050f941..57faac1 100644 --- a/src/ir_mctrl.cpp +++ b/src/ir_mctrl.cpp @@ -10,53 +10,53 @@ #include "ir_mctrl.h" #include "MESA_htable.h" -struct mctrl_glocal_info mctrl_g; +struct MCTRL_GLOCAL_INFO mctrl_g; -void s_d_start_cb(int update_type,void* u_para) +void sta_dyn_policy_maat_start_cb(int update_type,void* u_para) { if(update_type==MAAT_RULE_UPDATE_TYPE_FULL) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,Maat rule type is full",*(int*)u_para); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"sta_dyn_policy_maat_start_cb", "table_id:%d,Maat rule type is full",*(int*)u_para); switch(*(int*)u_para) { case DYNAMIC_NOMINEE_FLAG: mctrl_g.update_type_d=MAAT_RULE_UPDATE_TYPE_FULL; mctrl_g.version_d++; - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,version:%d",*(int*)u_para,mctrl_g.version_d); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG,(char*)"sta_dyn_policy_maat_start_cb", "table_id:%d,version:%d",*(int*)u_para,mctrl_g.version_d); break; case STATIC_NOMINEE_FLAG: mctrl_g.update_type_s=MAAT_RULE_UPDATE_TYPE_FULL; mctrl_g.version_s++; - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,version:%d",*(int*)u_para,mctrl_g.version_s); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG,(char*)"sta_dyn_policy_maat_start_cb", "table_id:%d,version:%d",*(int*)u_para,mctrl_g.version_s); break; case DNAT_POLICY_FLAG: mctrl_g.update_type_dp=MAAT_RULE_UPDATE_TYPE_FULL; mctrl_g.version_dp++; - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,version:%d",*(int*)u_para,mctrl_g.version_dp); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG,(char*)"sta_dyn_policy_maat_start_cb", "table_id:%d,version:%d",*(int*)u_para,mctrl_g.version_dp); break; default: - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_start_cb", "maat_start_cb table name error!!!"); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG,(char*)"sta_dyn_policy_maat_start_cb", "maat_start_cb table id error!!!"); assert(0); break; } } else { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,Maat rule type is inc",*(int*)u_para); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"sta_dyn_policy_maat_start_cb", "table_id:%d,Maat rule type is inc",*(int*)u_para); } return; } -void n_i_c_start_cb(int update_type,void* u_para) +void nominee_intercept_candidate_maat_start_cb(int update_type,void* u_para) { if(update_type==MAAT_RULE_UPDATE_TYPE_FULL) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,Maat rule type is full",*(int*)u_para); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"nominee_intercept_candidate_maat_start_cb", "table_id:%d,Maat rule type is full",*(int*)u_para); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"maat_rule_type", "table_name:%d,Maat rule type is inc",*(int*)u_para); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO,(char*)"nominee_intercept_candidate_maat_start_cb", "table_id:%d,Maat rule type is inc",*(int*)u_para); } return; } @@ -77,8 +77,8 @@ int set_ir_line(Maat_feather_t feather,const char *ir_table_name,const char *tab struct Maat_line_t line_rule; int ret = 0; char m_table_line[HTABLE_DATA_LEN]; - struct IR_MCTRL_INFO nom_info; - memset(&nom_info,0,sizeof(nom_info)); + struct IR_MCTRL_INFO mctrl_info; + memset(&mctrl_info,0,sizeof(mctrl_info)); memset(&line_rule, 0,sizeof(line_rule)); line_rule.label_id=0; @@ -86,25 +86,25 @@ int set_ir_line(Maat_feather_t feather,const char *ir_table_name,const char *tab line_rule.table_name=ir_table_name; sscanf(table_line, "%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - &nom_info.htable_flag,&nom_info.version,&nom_info.region_id,&nom_info.group_id,&nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,&nom_info.procotol,&nom_info.direction,&nom_info.addr_pool_id,&nom_info.is_valid, - &nom_info.action,&nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + &mctrl_info.htable_flag,&mctrl_info.version,&mctrl_info.region_id,&mctrl_info.group_id,&mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,&mctrl_info.procotol,&mctrl_info.direction,&mctrl_info.addr_pool_id,&mctrl_info.is_valid, + &mctrl_info.action,&mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); - mctrl_get_cur_time(nom_info.op_time); + mctrl_get_cur_time(mctrl_info.op_time); if(!memcmp(ir_table_name,NOMINEE_TABLE_NAME,strlen(NOMINEE_TABLE_NAME))) { snprintf(m_table_line,sizeof(m_table_line),"%d\t%d\t%d\t%s\t%d\t%s\t%s", - rule_id,nom_info.addr_pool_id,nom_info.addr_type,nom_info.src_ip,nom_info.is_valid,nom_info.effective_range,nom_info.op_time); + rule_id,mctrl_info.addr_pool_id,mctrl_info.addr_type,mctrl_info.src_ip,mctrl_info.is_valid,mctrl_info.effective_range,mctrl_info.op_time); } else { snprintf(m_table_line,sizeof(m_table_line),"%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - rule_id,nom_info.group_id,nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,nom_info.procotol,nom_info.direction, - nom_info.is_valid,nom_info.action,nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + rule_id,mctrl_info.group_id,mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,mctrl_info.procotol,mctrl_info.direction, + mctrl_info.is_valid,mctrl_info.action,mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); } line_rule.table_line=m_table_line; @@ -113,15 +113,15 @@ int set_ir_line(Maat_feather_t feather,const char *ir_table_name,const char *tab ret=Maat_cmd_set_line(feather, p_line, MAAT_OP_ADD); - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"maat_update", "set_table_name:%s set_table_line:%s",ir_table_name,m_table_line); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"set_ir_line", "set_table_name:%s set_table_line:%s",ir_table_name,m_table_line); if(ret==-1) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"SET_LINE","%s:set redis line error",ir_table_name); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"set_ir_line","%s:set rule_id is %d redis line error",ir_table_name,rule_id); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"SET_LINE","%s:set redis line success",ir_table_name); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"set_ir_line","%s:set rule_id is %d redis line success",ir_table_name,rule_id); } return ret; } @@ -139,28 +139,28 @@ int del_ir_line(Maat_feather_t feather,const char *ir_table_name,const char *tab line_rule.rule_id=rule_id; line_rule.table_name=ir_table_name; line_rule.table_line=NULL; - if(!memcmp(ir_table_name,NOMINEE_TABLE_NAME,strlen(NOMINEE_TABLE_NAME))) + if(!memcmp(ir_table_name,INTERCEPT_TABLE_NAME,strlen(NOMINEE_TABLE_NAME))) { - line_rule.expire_after=0; + line_rule.expire_after=TIME_OUT; p_line=&line_rule; - ret=Maat_cmd_set_line(feather, p_line, MAAT_OP_DEL); + ret=Maat_cmd_set_line(feather, p_line, MAAT_OP_RENEW_TIMEOUT); } else { - line_rule.expire_after=TIME_OUT; + line_rule.expire_after=0; p_line=&line_rule; - ret=Maat_cmd_set_line(feather, p_line, MAAT_OP_RENEW_TIMEOUT); + ret=Maat_cmd_set_line(feather, p_line, MAAT_OP_DEL); } - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"maat_update", "del_table_name:%s del_table_line:%s",ir_table_name,table_line); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"del_ir_line", "del_table_name:%s del_table_line:%s",ir_table_name,table_line); if(ret==-1) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"DEL_LINE","%s:del redis line error",ir_table_name); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"del_ir_line","%s:del rule_id is %d redis line error",ir_table_name,rule_id); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"DEL_LINE","%s:del redis line success",ir_table_name); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"del_ir_line","%s:del rule_id is %d redis line success",ir_table_name,rule_id); } return ret; @@ -179,56 +179,58 @@ long del_update_search_htable_cb(void *data, const uchar *key, uint size, void * long set_update_search_htable_cb(void *data, const uchar *key, uint size, void *user_arg) { - struct IR_MCTRL_INFO nom_info; + struct IR_MCTRL_INFO mctrl_info; + memset(&mctrl_info,0,sizeof(mctrl_info)); char *htable_data=(char*)data; if(htable_data!=NULL) { sscanf(htable_data,"%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - &nom_info.htable_flag,&nom_info.version,&nom_info.region_id,&nom_info.group_id,&nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,&nom_info.procotol,&nom_info.direction,&nom_info.addr_pool_id,&nom_info.is_valid, - &nom_info.action,&nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + &mctrl_info.htable_flag,&mctrl_info.version,&mctrl_info.region_id,&mctrl_info.group_id,&mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,&mctrl_info.procotol,&mctrl_info.direction,&mctrl_info.addr_pool_id,&mctrl_info.is_valid, + &mctrl_info.action,&mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); - if(nom_info.htable_flag & DYNAMIC_NOMINEE_FLAG) + if(mctrl_info.htable_flag & DYNAMIC_NOMINEE_FLAG) { - nom_info.version=mctrl_g.version_d; - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d! version:%d!",nom_info.htable_flag,nom_info.version); + mctrl_info.version=mctrl_g.version_d; + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d! version:%d!",mctrl_info.htable_flag,mctrl_info.version); } - else if(nom_info.htable_flag & STATIC_NOMINEE_FLAG) + else if(mctrl_info.htable_flag & STATIC_NOMINEE_FLAG) { - nom_info.version=mctrl_g.version_s; - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d! version:%d!",nom_info.htable_flag,nom_info.version); + mctrl_info.version=mctrl_g.version_s; + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d! version:%d!",mctrl_info.htable_flag,mctrl_info.version); } - else if(nom_info.htable_flag & DNAT_POLICY_FLAG) + else if(mctrl_info.htable_flag & DNAT_POLICY_FLAG) { - nom_info.version=mctrl_g.version_dp; - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d! version:%d!",nom_info.htable_flag,nom_info.version); + mctrl_info.version=mctrl_g.version_dp; + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d! version:%d!",mctrl_info.htable_flag,mctrl_info.version); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d!",nom_info.htable_flag); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"set_update_search_htable_cb","get htable flag:%d!",mctrl_info.htable_flag); } snprintf(htable_data,HTABLE_DATA_LEN, "%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - nom_info.htable_flag,nom_info.version,nom_info.region_id,nom_info.group_id,nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,nom_info.procotol,nom_info.direction,nom_info.addr_pool_id,nom_info.is_valid, - nom_info.action,nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + mctrl_info.htable_flag,mctrl_info.version,mctrl_info.region_id,mctrl_info.group_id,mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,mctrl_info.procotol,mctrl_info.direction,mctrl_info.addr_pool_id,mctrl_info.is_valid, + mctrl_info.action,mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_INFO, (char*)"set_update_search_htable_cb","htable info not exist!,set error!!!"); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"set_update_search_htable_cb","htable info not exist!,add htable data error!!!"); assert(0); } - return nom_info.htable_flag; + return mctrl_info.htable_flag; } -long n_i_c_update_search_htable_cb(void *data, const uchar *key, uint size, void *user_arg) +long nominee_intercept_candidate_search_htable_cb(void *data, const uchar *key, uint size, void *user_arg) { int htable_flag=0; - struct IR_MCTRL_INFO nom_info; + struct IR_MCTRL_INFO mctrl_info; + memset(&mctrl_info,0,sizeof(mctrl_info)); char *htable_data=(char*)data; if(htable_data==NULL) @@ -236,11 +238,11 @@ long n_i_c_update_search_htable_cb(void *data, const uchar *key, uint size, void return htable_flag; } - sscanf((char*)data, "%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - &htable_flag,&nom_info.version,&nom_info.region_id,&nom_info.group_id,&nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,&nom_info.procotol,&nom_info.direction,&nom_info.addr_pool_id,&nom_info.is_valid, - &nom_info.action,&nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + sscanf(htable_data, "%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", + &htable_flag,&mctrl_info.version,&mctrl_info.region_id,&mctrl_info.group_id,&mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,&mctrl_info.procotol,&mctrl_info.direction,&mctrl_info.addr_pool_id,&mctrl_info.is_valid, + &mctrl_info.action,&mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); switch(*(int*)user_arg) { @@ -263,23 +265,23 @@ long n_i_c_update_search_htable_cb(void *data, const uchar *key, uint size, void } break; default: - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"n_i_c_update_search_htable_cb","htable flag is:%d",htable_flag); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"nominee_intercept_candidate_search_htable_cb","read nom_intercept_candidate_table error!!!"); + assert(0); break; } snprintf(htable_data,HTABLE_DATA_LEN, "%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - htable_flag,nom_info.version,nom_info.region_id,nom_info.group_id,nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,nom_info.procotol,nom_info.direction,nom_info.addr_pool_id,nom_info.is_valid, - nom_info.action,nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + htable_flag,mctrl_info.version,mctrl_info.region_id,mctrl_info.group_id,mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,mctrl_info.procotol,mctrl_info.direction,mctrl_info.addr_pool_id,mctrl_info.is_valid, + mctrl_info.action,mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"n_i_c_update_search_htable_cb","htable flag change:%d",htable_flag); - - + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_search_htable_cb","Data rule id is:%d htable flag is:%d",mctrl_info.region_id, htable_flag); + return htable_flag; } -void del_redis_info(int flag,const char* table_line,int rule_id) +void del_ir_redis_info(int flag,const char* table_line,int rule_id) { if(flag & INTERCEPT_FLAG) @@ -300,7 +302,7 @@ void del_redis_info(int flag,const char* table_line,int rule_id) return; } -void n_i_c_table_update_cb(int table_id,const char* table_line,void* u_para) +void nominee_intercept_candidate_maat_update_cb(int table_id,const char* table_line,void* u_para) { int rule_id=0; void *htable_data=NULL; @@ -323,7 +325,7 @@ void n_i_c_table_update_cb(int table_id,const char* table_line,void* u_para) sscanf(table_line,"%d\t%*d\t%*d\t%*s\t%*d\t%d",&rule_id,&is_valid); break; default: - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"READ_TABLE_UPDATA","read n_i_c_table error!!!"); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"nominee_intercept_candidate_maat_update_cb","read nom_intercept_candidate_table flag error!!!"); assert(0); break; } @@ -332,19 +334,20 @@ void n_i_c_table_update_cb(int table_id,const char* table_line,void* u_para) if(is_valid==0) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"READ_TABLE_UPDATA"," del table_name:%d,data:%s is_valid==0,del succeed",*(int*)u_para,table_line); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"nominee_intercept_candidate_maat_update_cb"," del table_id:%d,data:%s is_valid==0,del succeed",*(int*)u_para,table_line); return; } - htable_data=MESA_htable_search_cb(mctrl_g.s_d_htable,key_id,sizeof(rule_id), n_i_c_update_search_htable_cb,u_para,&search_ret); + htable_data=MESA_htable_search_cb(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id), nominee_intercept_candidate_search_htable_cb,u_para,&search_ret); if(htable_data==NULL) { - del_redis_info(*(int*)u_para,table_line,rule_id); + del_ir_redis_info(*(int*)u_para,table_line,rule_id); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_maat_update_cb","htable data not exist,del it!"); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"READ_TABLE_UPDATA","already exist!"); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_maat_update_cb","htable data exist!"); } return; } @@ -353,14 +356,14 @@ void htable_data_free(void *data) { if(data!=NULL) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_INFO, (char*)"DATA_FREE","htable_data_free!"); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_INFO, (char*)"htable_data_free","htable_data_free!"); free(data); data=NULL; } return; } -void set_redis_info(int flag,const char* table_line,int rule_id) +void set_ir_redis_info(int flag,const char* table_line,int rule_id) { if(!(flag & INTERCEPT_FLAG)) { @@ -375,11 +378,11 @@ void set_redis_info(int flag,const char* table_line,int rule_id) return; } -void s_d_table_update_cb(int table_id,const char* table_line,void* u_para) +void sta_dyn_policy_maat_update_cb(int table_id,const char* table_line,void* u_para) { int add_ret=0; - struct IR_MCTRL_INFO nom_info; - memset(&nom_info,0,sizeof(nom_info)); + struct IR_MCTRL_INFO mctrl_info; + memset(&mctrl_info,0,sizeof(mctrl_info)); char *htable_data=NULL; void *search_result=NULL; int rule_id=0; @@ -388,192 +391,193 @@ void s_d_table_update_cb(int table_id,const char* table_line,void* u_para) switch(*(int*)u_para) { case DYNAMIC_NOMINEE_FLAG: - nom_info.addr_pool_id=0; - nom_info.group_id=nom_info.region_id; - memcpy(nom_info.src_port,"0",sizeof("0")); - memcpy(nom_info.mask_src_ip,"0.0.0.0",sizeof("0.0.0.0")); - memcpy(nom_info.mask_src_port,"0",sizeof("0")); - memcpy(nom_info.dst_ip,"0.0.0.0",sizeof("0.0.0.0")); - memcpy(nom_info.mask_dst_ip,"0.0.0.0",sizeof("0.0.0.0")); - memcpy(nom_info.dst_port,"0",sizeof("0")); - memcpy(nom_info.mask_dst_port,"0",sizeof("0")); - memcpy(nom_info.effective_range,"{}",sizeof("{}")); - nom_info.action=96; - nom_info.service=832; - nom_info.htable_flag=DYNAMIC_NOMINEE_FLAG; + mctrl_info.addr_pool_id=0; + memcpy(mctrl_info.src_port,"0",sizeof("0")); + memcpy(mctrl_info.mask_src_ip,"0.0.0.0",sizeof("0.0.0.0")); + memcpy(mctrl_info.mask_src_port,"0",sizeof("0")); + memcpy(mctrl_info.dst_ip,"0.0.0.0",sizeof("0.0.0.0")); + memcpy(mctrl_info.mask_dst_ip,"0.0.0.0",sizeof("0.0.0.0")); + memcpy(mctrl_info.dst_port,"0",sizeof("0")); + memcpy(mctrl_info.mask_dst_port,"0",sizeof("0")); + memcpy(mctrl_info.effective_range,"{}",sizeof("{}")); + mctrl_info.action=96; + mctrl_info.service=832; + mctrl_info.htable_flag=DYNAMIC_NOMINEE_FLAG; sscanf(table_line,"%d\t%d\t%d\t%s\t%*s\t%d\t%s\t%*d\t%d\t%d\t%*d\t%*s\t%*s", - &nom_info.region_id,&nom_info.addr_type,&nom_info.procotol,nom_info.src_ip, - &nom_info.direction,nom_info.user_region,&nom_info.is_valid,&nom_info.service); - nom_info.region_id=(nom_info.region_id%SNAT_DYNAMIC_NUMBER)+SNAT_DYNAMIC_NUMBER; + &mctrl_info.region_id,&mctrl_info.addr_type,&mctrl_info.procotol,mctrl_info.src_ip, + &mctrl_info.direction,mctrl_info.user_region,&mctrl_info.is_valid,&mctrl_info.service); + mctrl_info.region_id=(mctrl_info.region_id%SNAT_DYNAMIC_NUMBER)+SNAT_DYNAMIC_NUMBER; + mctrl_info.group_id=mctrl_info.region_id; break; case STATIC_NOMINEE_FLAG: - memcpy(nom_info.user_region,"0",sizeof("0")); - memcpy(nom_info.effective_range,"{}",sizeof("{}")); - nom_info.service=832; - nom_info.htable_flag=STATIC_NOMINEE_FLAG; + memcpy(mctrl_info.user_region,"0",sizeof("0")); + memcpy(mctrl_info.effective_range,"{}",sizeof("{}")); + mctrl_info.service=832; + mctrl_info.htable_flag=STATIC_NOMINEE_FLAG; sscanf(table_line,"%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%*d\t%*s\t%*s", - &nom_info.region_id,&nom_info.group_id,&nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,&nom_info.procotol,&nom_info.direction,&nom_info.addr_pool_id,&nom_info.is_valid, - &nom_info.action); - nom_info.region_id=(nom_info.region_id%DNAT_NUMBER)+DNAT_NUMBER; + &mctrl_info.region_id,&mctrl_info.group_id,&mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,&mctrl_info.procotol,&mctrl_info.direction,&mctrl_info.addr_pool_id,&mctrl_info.is_valid, + &mctrl_info.action); + mctrl_info.region_id=(mctrl_info.region_id%DNAT_NUMBER)+DNAT_NUMBER; break; case DNAT_POLICY_FLAG: - memcpy(nom_info.src_ip,"0.0.0.0",sizeof("0.0.0.0")); - memcpy(nom_info.src_port,"0",sizeof("0")); - memcpy(nom_info.mask_src_ip,"0.0.0.0",sizeof("0.0.0.0")); - memcpy(nom_info.mask_src_port,"0",sizeof("0")); - memcpy(nom_info.mask_dst_ip,"0.0.0.0",sizeof("0.0.0.0")); - memcpy(nom_info.mask_dst_port,"0",sizeof("0")); - memcpy(nom_info.user_region,"0",sizeof("0")); - memcpy(nom_info.effective_range,"{}",sizeof("{}")); - nom_info.direction=0; - nom_info.action=96; - nom_info.service=832; - nom_info.htable_flag=DNAT_POLICY_FLAG; + memcpy(mctrl_info.src_ip,"0.0.0.0",sizeof("0.0.0.0")); + memcpy(mctrl_info.src_port,"0",sizeof("0")); + memcpy(mctrl_info.mask_src_ip,"0.0.0.0",sizeof("0.0.0.0")); + memcpy(mctrl_info.mask_src_port,"0",sizeof("0")); + memcpy(mctrl_info.mask_dst_ip,"0.0.0.0",sizeof("0.0.0.0")); + memcpy(mctrl_info.mask_dst_port,"0",sizeof("0")); + memcpy(mctrl_info.user_region,"0",sizeof("0")); + memcpy(mctrl_info.effective_range,"{}",sizeof("{}")); + mctrl_info.direction=0; + mctrl_info.action=96; + mctrl_info.service=832; + mctrl_info.htable_flag=DNAT_POLICY_FLAG; sscanf(table_line,"%d\t%d\t%s\t%s\t%d\t%*s\t%*s\t%d\t%*d\t%*d\t%d\t%*s\t%*s", - &nom_info.region_id,&nom_info.addr_type,nom_info.dst_ip,nom_info.dst_port,&nom_info.procotol, - &nom_info.do_log,&nom_info.is_valid); - nom_info.group_id=nom_info.region_id; - nom_info.region_id=nom_info.region_id%DNAT_NUMBER; + &mctrl_info.region_id,&mctrl_info.addr_type,mctrl_info.dst_ip,mctrl_info.dst_port,&mctrl_info.procotol, + &mctrl_info.do_log,&mctrl_info.is_valid); + mctrl_info.group_id=mctrl_info.region_id; + mctrl_info.region_id=mctrl_info.region_id%DNAT_NUMBER; break; default: - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"read_snat_dnat","read_snat_or_dnat table error!!"); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"sta_dyn_policy_maat_update_cb","read_snat_or_dnat table flag error!!"); assert(0); break; } - unsigned char *key_id=(unsigned char*)&nom_info.region_id; - rule_id=nom_info.region_id; + unsigned char *key_id=(unsigned char*)&mctrl_info.region_id; + rule_id=mctrl_info.region_id; - if(nom_info.is_valid==1) + if(mctrl_info.is_valid==1) { htable_data=(char*)malloc(HTABLE_DATA_LEN); snprintf(htable_data,HTABLE_DATA_LEN,"%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - nom_info.htable_flag,nom_info.version,nom_info.region_id,nom_info.group_id,nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,nom_info.procotol,nom_info.direction,nom_info.addr_pool_id,nom_info.is_valid, - nom_info.action,nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); + mctrl_info.htable_flag,mctrl_info.version,mctrl_info.region_id,mctrl_info.group_id,mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,mctrl_info.procotol,mctrl_info.direction,mctrl_info.addr_pool_id,mctrl_info.is_valid, + mctrl_info.action,mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); - add_ret=MESA_htable_add(mctrl_g.s_d_htable,key_id,sizeof(rule_id),htable_data); + add_ret=MESA_htable_add(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),htable_data); if(add_ret<0) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"ADD_S_AND_D_NOMINEE_HASH","add htable error:%d",add_ret); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_update_cb","add htable error:%d",add_ret); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"ADD_S_AND_D_NOMINEE_HASH","add htable succeed:%d",add_ret); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_update_cb","add htable succeed:%d",add_ret); } - - MESA_htable_search_cb(mctrl_g.s_d_htable,key_id,sizeof(rule_id),set_update_search_htable_cb,NULL,&cb_ret); + MESA_htable_search_cb(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),set_update_search_htable_cb,NULL,&cb_ret); - set_redis_info(cb_ret,htable_data,rule_id); + set_ir_redis_info(cb_ret,htable_data,rule_id); } - else if(nom_info.is_valid==0) + else if(mctrl_info.is_valid==0) { - search_result=MESA_htable_search_cb(mctrl_g.s_d_htable,key_id,sizeof(rule_id),del_update_search_htable_cb,NULL,&cb_ret); + search_result=MESA_htable_search_cb(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),del_update_search_htable_cb,NULL,&cb_ret); if(search_result==NULL) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"write_update", "already del!!!"); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"sta_dyn_policy_maat_update_cb", "already del!!!"); return; } - del_redis_info(cb_ret,table_line,rule_id); + del_ir_redis_info(cb_ret,table_line,rule_id); - del_ret=MESA_htable_del(mctrl_g.s_d_htable,key_id,sizeof(rule_id),htable_data_free); + del_ret=MESA_htable_del(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),htable_data_free); if(del_ret<0) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"DEL_S_AND_D_NOMINEE","del htable error:%d",del_ret); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"sta_dyn_policy_maat_update_cb","del htable error:%d",del_ret); + assert(0); } } else { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"write_update", "is_valid default !!!"); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"sta_dyn_policy_maat_update_cb", "is_valid default !!!"); assert(0); } return; } -void s_d_htable_full_iterate(const uchar * key, uint size, void * data, void * user) +void sta_dyn_policy_htable_full_iterate(const uchar * key, uint size, void * data, void * user) { - struct IR_MCTRL_INFO nom_info; - memset(&nom_info,0,sizeof(nom_info)); + struct IR_MCTRL_INFO mctrl_info; + memset(&mctrl_info,0,sizeof(mctrl_info)); char *htable_data=(char*)data; int del_ret=0; if(htable_data==NULL) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"search_s_d_htable","htable is null"); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"sta_dyn_policy_htable_full_iterate","htable is null"); return; } sscanf(htable_data, "%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s", - &nom_info.htable_flag,&nom_info.version,&nom_info.region_id,&nom_info.group_id,&nom_info.addr_type, - nom_info.src_ip,nom_info.mask_src_ip,nom_info.src_port,nom_info.mask_src_port,nom_info.dst_ip,nom_info.mask_dst_ip, - nom_info.dst_port,nom_info.mask_dst_port,&nom_info.procotol,&nom_info.direction,&nom_info.addr_pool_id,&nom_info.is_valid, - &nom_info.action,&nom_info.service,nom_info.user_region,nom_info.effective_range,nom_info.op_time); - if((mctrl_g.update_type_s==MAAT_RULE_UPDATE_TYPE_FULL&&(nom_info.htable_flag & STATIC_NOMINEE_FLAG)&&nom_info.version!=mctrl_g.version_s)|| - (mctrl_g.update_type_d==MAAT_RULE_UPDATE_TYPE_FULL&&(nom_info.htable_flag & DYNAMIC_NOMINEE_FLAG)&&nom_info.version!=mctrl_g.version_d)|| - (mctrl_g.update_type_dp==MAAT_RULE_UPDATE_TYPE_FULL&&(nom_info.htable_flag & DNAT_POLICY_FLAG)&&nom_info.version!=mctrl_g.version_dp)) + &mctrl_info.htable_flag,&mctrl_info.version,&mctrl_info.region_id,&mctrl_info.group_id,&mctrl_info.addr_type, + mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip, + mctrl_info.dst_port,mctrl_info.mask_dst_port,&mctrl_info.procotol,&mctrl_info.direction,&mctrl_info.addr_pool_id,&mctrl_info.is_valid, + &mctrl_info.action,&mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time); + if((mctrl_g.update_type_s==MAAT_RULE_UPDATE_TYPE_FULL&&(mctrl_info.htable_flag & STATIC_NOMINEE_FLAG)&&mctrl_info.version!=mctrl_g.version_s)|| + (mctrl_g.update_type_d==MAAT_RULE_UPDATE_TYPE_FULL&&(mctrl_info.htable_flag & DYNAMIC_NOMINEE_FLAG)&&mctrl_info.version!=mctrl_g.version_d)|| + (mctrl_g.update_type_dp==MAAT_RULE_UPDATE_TYPE_FULL&&(mctrl_info.htable_flag & DNAT_POLICY_FLAG)&&mctrl_info.version!=mctrl_g.version_dp)) { - del_redis_info(nom_info.htable_flag,(char*)data,nom_info.region_id); + del_ir_redis_info(mctrl_info.htable_flag,(char*)data,mctrl_info.region_id); - unsigned char *key_id=(unsigned char*)&nom_info.region_id; + unsigned char *key_id=(unsigned char*)&mctrl_info.region_id; - del_ret=MESA_htable_del(mctrl_g.s_d_htable,key_id,sizeof(int),htable_data_free); + del_ret=MESA_htable_del(mctrl_g.mctrl_htable_handle,key_id,sizeof(int),htable_data_free); if(del_ret<0) { - MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"DEL_S_AND_D_NOMINEE","del htable error:%d",del_ret); + MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"sta_dyn_policy_htable_full_iterate","del htable error:%d",del_ret); + assert(0); } } return; } -void s_d_finish_cb(void* u_para) +void sta_dyn_policy_maat_finish_cb(void* u_para) { if((*(int*)u_para==DYNAMIC_NOMINEE_FLAG)&&mctrl_g.update_type_d==MAAT_RULE_UPDATE_TYPE_FULL) { - MESA_htable_iterate(mctrl_g.s_d_htable, s_d_htable_full_iterate,NULL); + MESA_htable_iterate(mctrl_g.mctrl_htable_handle, sta_dyn_policy_htable_full_iterate,NULL); mctrl_g.update_type_d=MAAT_RULE_UPDATE_TYPE_INC; - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"maat_finish", "table_name:%d,update_type:%d,finish succeed",*(int*)u_para,mctrl_g.update_type_d); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_finish_cb", "table_id:%d,update_type:%d,finish succeed",*(int*)u_para,mctrl_g.update_type_d); } else if((*(int*)u_para==STATIC_NOMINEE_FLAG)&&mctrl_g.update_type_s==MAAT_RULE_UPDATE_TYPE_FULL) { - MESA_htable_iterate(mctrl_g.s_d_htable, s_d_htable_full_iterate,NULL); + MESA_htable_iterate(mctrl_g.mctrl_htable_handle, sta_dyn_policy_htable_full_iterate,NULL); mctrl_g.update_type_s=MAAT_RULE_UPDATE_TYPE_INC; - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"maat_finish", "table_name:%d,update_type:%d,finish succeed",*(int*)u_para,mctrl_g.update_type_s); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_finish_cb", "table_id:%d,update_type:%d,finish succeed",*(int*)u_para,mctrl_g.update_type_s); } else if((*(int*)u_para==DNAT_POLICY_FLAG)&&mctrl_g.update_type_dp==MAAT_RULE_UPDATE_TYPE_FULL) { - MESA_htable_iterate(mctrl_g.s_d_htable, s_d_htable_full_iterate,NULL); + MESA_htable_iterate(mctrl_g.mctrl_htable_handle, sta_dyn_policy_htable_full_iterate,NULL); mctrl_g.update_type_dp=MAAT_RULE_UPDATE_TYPE_INC; - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"maat_finish", "table_name:%d,update_type:%d,finish succeed",*(int*)u_para,mctrl_g.update_type_dp); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_finish_cb", "table_id:%d,update_type:%d,finish succeed",*(int*)u_para,mctrl_g.update_type_dp); } else { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"maat_finish", "table_name:%d,finish succeed",*(int*)u_para); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"sta_dyn_policy_maat_finish_cb", "table_id:%d,finish succeed",*(int*)u_para); } return; } -void n_i_c_finish_cb(void* u_para) +void nominee_intercept_candidate_maat_finish_cb(void* u_para) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"maat_finish", "table_name:%d,finish succeed",*(int*)u_para); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_INFO, (char*)"nominee_intercept_candidate_maat_finish_cb", "table_id:%d,finish succeed",*(int*)u_para); return; } -int read_plugin_table(Maat_feather_t feather,const char* table_name, +int register_plugin_table(Maat_feather_t feather,const char* table_name, Maat_start_callback_t *start,Maat_update_callback_t *update,Maat_finish_callback_t *finish, void *u_para,void* logger,int table_id) { @@ -586,7 +590,7 @@ int read_plugin_table(Maat_feather_t feather,const char* table_name, u_para); if(ret<0) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"REGISTER_TABLE", "Maat callback register table %s error.\n",table_name); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL, (char*)"register_plugin_table", "Maat callback register table %s error.\n",table_name); assert(0); } @@ -602,7 +606,7 @@ void htable_iterate(const uchar * key, uint size, void * data, void * user) sscanf(table_line,"%d\t%*d\t%d",&htable_flag,&rule_id); - set_redis_info(htable_flag,table_line,rule_id); + set_ir_redis_info(htable_flag,table_line,rule_id); return; } @@ -641,21 +645,21 @@ void Maat_init() MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section,"logger_level", &logger_level,RLOG_LV_FATAL); MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section,"max_thread_num", &max_thread_num, 1); //dynamic server conf - MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_d,"Maat_redis_ip", Maat_redis_ip_d, sizeof(Maat_redis_ip_d), "127.0.0.1"); - MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_d,"Maat_redis_port", &Maat_redis_port_d,6379); + MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_d,"Maat_redis_ip", Maat_redis_ip_d, sizeof(Maat_redis_ip_d), "192.168.11.243"); + MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_d,"Maat_redis_port", &Maat_redis_port_d,6800); MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_d,"Maat_redis_index", &Maat_redis_index_d,1); //static server conf - MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_s, "Maat_redis_ip", Maat_redis_ip_s, sizeof(Maat_redis_ip_s), "127.0.0.1"); + MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_s, "Maat_redis_ip", Maat_redis_ip_s, sizeof(Maat_redis_ip_s), "192.168.11.243"); MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_s,"Maat_redis_port", &Maat_redis_port_s,6379); - MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_s,"Maat_redis_index", &Maat_redis_index_s,0); + MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_s,"Maat_redis_index", &Maat_redis_index_s,6); //nominee and candate conf - MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_n,"Maat_redis_ip", Maat_redis_ip_n, sizeof(Maat_redis_ip_n), "127.0.0.1"); - MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_n,"Maat_redis_port", &Maat_redis_port_n,6379); - MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_n,"Maat_redis_index", &Maat_redis_index_n,0); + MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_n,"Maat_redis_ip", Maat_redis_ip_n, sizeof(Maat_redis_ip_n), "192.168.11.243"); + MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_n,"Maat_redis_port", &Maat_redis_port_n,6800); + MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_n,"Maat_redis_index", &Maat_redis_index_n,5); //intercept conf - MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_i,"Maat_redis_ip", Maat_redis_ip_i, sizeof(Maat_redis_ip_i), "127.0.0.1"); - MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_i,"Maat_redis_port", &Maat_redis_port_i,6379); - MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_i,"Maat_redis_index", &Maat_redis_index_i,0); + MESA_load_profile_string_def((char*)MCTRL_CONF_FILE, section_i,"Maat_redis_ip", Maat_redis_ip_i, sizeof(Maat_redis_ip_i), "192.168.11.243"); + MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_i,"Maat_redis_port", &Maat_redis_port_i,6800); + MESA_load_profile_int_def((char*)MCTRL_CONF_FILE, section_i,"Maat_redis_index", &Maat_redis_index_i,1); //log mctrl_g.logger_handle=MESA_create_runtime_log_handle(logger_path,logger_level); @@ -709,15 +713,15 @@ void Maat_init() int htable_init() { int htable_ret=0; - mctrl_g.s_d_htable = MESA_htable_born(); - if(mctrl_g.s_d_htable == NULL) + mctrl_g.mctrl_htable_handle = MESA_htable_born(); + if(mctrl_g.mctrl_htable_handle == NULL) { MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL,(char*)"htable","htable born failed"); assert(0); return -1; } - htable_ret = MESA_htable_mature(mctrl_g.s_d_htable); + htable_ret = MESA_htable_mature(mctrl_g.mctrl_htable_handle); if(0 == htable_ret) { @@ -758,15 +762,15 @@ int main(int argc, char * argv [ ]) if(static_id==-1||dynamic_id==-1||dnat_policy_id==-1) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL,(char*)"REGISTER_TABLE","S_D_DP Database table register failed\n"); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL,(char*)"main","Sta_Dyn_policy Database table register failed\n"); assert(0); } - read_plugin_table(mctrl_g.s_feather,STATIC_NOMINEE_TABLE_NAME,s_d_start_cb,s_d_table_update_cb,s_d_finish_cb, + register_plugin_table(mctrl_g.s_feather,STATIC_NOMINEE_TABLE_NAME,sta_dyn_policy_maat_start_cb,sta_dyn_policy_maat_update_cb,sta_dyn_policy_maat_finish_cb, &static_flag,mctrl_g.logger_handle,static_id); - read_plugin_table(mctrl_g.d_feather,DYNAMIC_NOMINEE_TABLE_NAME,s_d_start_cb,s_d_table_update_cb,s_d_finish_cb, + register_plugin_table(mctrl_g.d_feather,DYNAMIC_NOMINEE_TABLE_NAME,sta_dyn_policy_maat_start_cb,sta_dyn_policy_maat_update_cb,sta_dyn_policy_maat_finish_cb, &dynamic_flag,mctrl_g.logger_handle,dynamic_id); - read_plugin_table(mctrl_g.s_feather,DNAT_POLICY_TABLE_NAME,s_d_start_cb,s_d_table_update_cb,s_d_finish_cb, + register_plugin_table(mctrl_g.s_feather,DNAT_POLICY_TABLE_NAME,sta_dyn_policy_maat_start_cb,sta_dyn_policy_maat_update_cb,sta_dyn_policy_maat_finish_cb, &dnat_policy_flag,mctrl_g.logger_handle,dnat_policy_id); nominee_id=Maat_table_register(mctrl_g.n_feather,NOMINEE_TABLE_NAME); @@ -775,20 +779,20 @@ int main(int argc, char * argv [ ]) if(nominee_id==-1||candidate_id==-1||intercept_id==-1) { - MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL,(char*)"REGISTER_TABLE","N_C_I Database table register failed\n"); + MESA_handle_runtime_log(mctrl_g.logger_handle,RLOG_LV_FATAL,(char*)"main","Nom_Candidate_Intercept Database table register failed\n"); assert(0); } - read_plugin_table(mctrl_g.i_feather,INTERCEPT_TABLE_NAME,n_i_c_start_cb,n_i_c_table_update_cb,n_i_c_finish_cb, + register_plugin_table(mctrl_g.i_feather,INTERCEPT_TABLE_NAME,nominee_intercept_candidate_maat_start_cb,nominee_intercept_candidate_maat_update_cb,nominee_intercept_candidate_maat_finish_cb, &intercept_flag,mctrl_g.logger_handle,intercept_id); - read_plugin_table(mctrl_g.n_feather,NOMINEE_TABLE_NAME,n_i_c_start_cb,n_i_c_table_update_cb,n_i_c_finish_cb, + register_plugin_table(mctrl_g.n_feather,NOMINEE_TABLE_NAME,nominee_intercept_candidate_maat_start_cb,nominee_intercept_candidate_maat_update_cb,nominee_intercept_candidate_maat_finish_cb, &nominee_flag,mctrl_g.logger_handle,nominee_id); - read_plugin_table(mctrl_g.n_feather,CANDIDATE_TABLE_NAME,n_i_c_start_cb,n_i_c_table_update_cb,n_i_c_finish_cb, + register_plugin_table(mctrl_g.n_feather,CANDIDATE_TABLE_NAME,nominee_intercept_candidate_maat_start_cb,nominee_intercept_candidate_maat_update_cb,nominee_intercept_candidate_maat_finish_cb, &candidate_flag,mctrl_g.logger_handle,candidate_id); while(1) { - MESA_htable_iterate(mctrl_g.s_d_htable, htable_iterate, NULL); + MESA_htable_iterate(mctrl_g.mctrl_htable_handle, htable_iterate, NULL); sleep(SLEEP_TIME); } @@ -797,7 +801,7 @@ int main(int argc, char * argv [ ]) Maat_burn_feather(mctrl_g.i_feather); Maat_burn_feather(mctrl_g.n_feather); MESA_destroy_runtime_log_handle(mctrl_g.logger_handle); - MESA_htable_destroy(mctrl_g.s_d_htable,htable_data_free); + MESA_htable_destroy(mctrl_g.mctrl_htable_handle,htable_data_free); return 0; } diff --git a/src/ir_mctrl.h b/src/ir_mctrl.h index ac60fcc..6a42a98 100644 --- a/src/ir_mctrl.h +++ b/src/ir_mctrl.h @@ -10,7 +10,7 @@ #define MAX_PORT_LEN 6 #define MAX_PATH_LEN 64 #define MAX_TABLE_NAME_LEN 64 -#define MAX_TIME_LEN 30 +#define MAX_TIME_LEN 40 #define HTABLE_DATA_LEN 512 #define MCTRL_CONF_FILE "./conf/mctrl.conf" @@ -24,11 +24,12 @@ #define CANDIDATE_TABLE_NAME "IR_CANDIDATE_IP" #define SLEEP_TIME 43200 -#define TIME_OUT 30 -#define MAX_THREAD_NUM 1 +#define TIME_OUT 1800 +#define MAX_THREAD_NUM 1 #define DNAT_NUMBER 500000000 #define SNAT_DYNAMIC_NUMBER 1000000000 + //table flag #define STATIC_NOMINEE_FLAG 1 #define DYNAMIC_NOMINEE_FLAG 2 @@ -64,14 +65,14 @@ struct IR_MCTRL_INFO int version; }; -struct mctrl_glocal_info +struct MCTRL_GLOCAL_INFO { void *logger_handle; Maat_feather_t d_feather; Maat_feather_t s_feather; Maat_feather_t n_feather; Maat_feather_t i_feather; - MESA_htable_handle s_d_htable; + MESA_htable_handle mctrl_htable_handle; int update_type_s; int update_type_d; int update_type_dp; |
