#ifndef IR_MCTRL_H #define IR_MCTRL_H #include "MESA_handle_logger.h" #include "Maat_rule.h" #include "Maat_command.h" #include "MESA_htable.h" #define MAX_STRING_LEN 64 #define MAX_PORT_LEN 6 #define MAX_PATH_LEN 64 #define MAX_TABLE_NAME_LEN 64 #define MAX_TIME_LEN 40 #define HTABLE_DATA_LEN 512 #define MCTRL_CONF_FILE "./conf/mctrl.conf" //table name #define STATIC_NOMINEE_TABLE_NAME "IR_STATIC_NOMINEE_IP" #define DYNAMIC_NOMINEE_TABLE_NAME "IR_DYNAMIC_NOMINEE_IP" #define DNAT_POLICY_TABLE_NAME "IR_DNAT_POLICY" #define NOMINEE_TABLE_NAME "IR_NOMINEE_IP" #define INTERCEPT_TABLE_NAME "IR_INTERCEPT_IP" #define CANDIDATE_TABLE_NAME "IR_CANDIDATE_IP" #define SLEEP_TIME 43200 #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 #define DNAT_POLICY_FLAG 4 #define NOMINEE_FLAG 8 #define INTERCEPT_FLAG 16 #define CANDIDATE_FLAG 32 struct IR_MCTRL_INFO { int region_id; int group_id; int addr_type; char src_ip[MAX_STRING_LEN]; char mask_src_ip[MAX_STRING_LEN]; char src_port[MAX_PORT_LEN]; char mask_src_port[MAX_PORT_LEN]; char dst_ip[MAX_STRING_LEN]; char mask_dst_ip[MAX_STRING_LEN]; char dst_port[MAX_PORT_LEN]; char mask_dst_port[MAX_PORT_LEN]; int procotol; int direction; int is_valid; int action; int service; int addr_pool_id; char effective_range[MAX_STRING_LEN]; char user_region[MAX_STRING_LEN]; char op_time[MAX_TIME_LEN]; int do_log; int htable_flag; int version; }; 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 mctrl_htable_handle; int update_type_s; int update_type_d; int update_type_dp; int version_s; int version_d; int version_dp; }; #endif