#include"mrl_stat.h" #include #include #include #include struct global_stat_t global_stat; struct fs_stat_t global_fs_stat; void mrl_stat_init() { int value = 0; char stat_file[] = "log/mrl_stat.log"; memset(&global_stat,0,sizeof(struct global_stat_t)); global_fs_stat.handle = FS_create_handle(); FS_set_para(global_fs_stat.handle, OUTPUT_DEVICE, stat_file, strlen(stat_file)+1); value = 1; FS_set_para(global_fs_stat.handle, PRINT_MODE, &value, sizeof(value)); value = 0; FS_set_para(global_fs_stat.handle, CREATE_THREAD, &value, sizeof(value)); /* field */ global_fs_stat.fs_field_id[FIELD_RECV_IR_TCP_PKTS] = FS_register(global_fs_stat.handle, FS_STYLE_FIELD, FS_CALC_SPEED,"recv_ir_tcp"); global_fs_stat.fs_field_id[FIELD_RECV_IR_UDP_PKTS] = FS_register(global_fs_stat.handle, FS_STYLE_FIELD, FS_CALC_SPEED,"recv_ir_udp"); global_fs_stat.fs_field_id[FIELD_RECV_MGW_PKTS] = FS_register(global_fs_stat.handle, FS_STYLE_FIELD, FS_CALC_SPEED,"recv_mgw_pkts"); /*status*/ global_fs_stat.fs_status_id[STATUS_SNAT_CANDIDATE_NUM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "snat_candidate_num"); global_fs_stat.fs_status_id[STATUS_DNAT_CANDIDATE_NUM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "dnat_candiate_num"); global_fs_stat.fs_status_id[STATUS_SNAT_NOMINEE_NUM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "snat_nominee_num"); global_fs_stat.fs_status_id[STATUS_DNAT_NOMINEE_NUM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "dnat_nominee_num"); global_fs_stat.fs_status_id[STATUS_LINK_IDENTITY_NUM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "link_identity_num"); global_fs_stat.fs_status_id[STATUS_DNAT_POLICYC_NUM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "dnat_policy_num"); global_fs_stat.fs_status_id[STATUS_VXLAN_INFO_ITEM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "vxlan_info_num"); global_fs_stat.fs_status_id[STATUS_MRL_IP_ITEM] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "mrl_info_num"); global_fs_stat.fs_status_id[STATUS_MALLOC_MEMORY] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "malloc_memory(Byte)"); global_fs_stat.fs_status_id[STATUS_FREE_MEMORY] = FS_register(global_fs_stat.handle, FS_STYLE_STATUS, FS_CALC_CURRENT, "free_memory(Byte)"); FS_start(global_fs_stat.handle); } void mrl_stat_output() { /*field*/ FS_operate(global_fs_stat.handle, global_fs_stat.fs_field_id[FIELD_RECV_IR_TCP_PKTS], 0, FS_OP_SET, global_stat.recv_ir_tcp_pkts); FS_operate(global_fs_stat.handle, global_fs_stat.fs_field_id[FIELD_RECV_IR_UDP_PKTS], 0, FS_OP_SET, global_stat.recv_ir_udp_pkts); FS_operate(global_fs_stat.handle, global_fs_stat.fs_field_id[FIELD_RECV_MGW_PKTS], 0, FS_OP_SET, global_stat.recv_mgw_pkts); /*status*/ FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_SNAT_CANDIDATE_NUM], 0, FS_OP_SET, global_stat.snat_candidate_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_DNAT_CANDIDATE_NUM], 0, FS_OP_SET, global_stat.dnat_candidate_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_SNAT_NOMINEE_NUM], 0, FS_OP_SET, global_stat.snat_nominee_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_DNAT_NOMINEE_NUM], 0, FS_OP_SET, global_stat.dnat_nominee_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_LINK_IDENTITY_NUM], 0, FS_OP_SET, global_stat.link_identity_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_DNAT_POLICYC_NUM], 0, FS_OP_SET, global_stat.dnat_policy_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_VXLAN_INFO_ITEM], 0, FS_OP_SET, global_stat.vxlan_info_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_MRL_IP_ITEM], 0, FS_OP_SET, global_stat.mrl_ip_num); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_MALLOC_MEMORY], 0, FS_OP_SET, global_stat.malloc_memory); FS_operate(global_fs_stat.handle, global_fs_stat.fs_status_id[STATUS_FREE_MEMORY], 0, FS_OP_SET, global_stat.free_memory); FS_passive_output(global_fs_stat.handle); } void *mrl_stat_action(void *arg) { for(;;) { mrl_stat_output(); sleep(1); } return NULL; }