2018-09-29 14:57:32 +08:00
|
|
|
|
#ifndef _MAIN_H
|
|
|
|
|
|
#define _MAIN_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <sys/un.h>
|
|
|
|
|
|
#include </usr/include/stdint.h>
|
|
|
|
|
|
|
|
|
|
|
|
#define APP_FUNC 0 //<2F>ֻ<EFBFBD>APP
|
|
|
|
|
|
#define VOIP_FUNC 0 //VOIP <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
|
#define PIC_FUNC 0 //PIC <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
|
|
|
|
|
|
|
#include "MESA_list_queue.h"
|
|
|
|
|
|
#include "MESA_htable.h"
|
|
|
|
|
|
#include "MESA_trace.h"
|
|
|
|
|
|
#include "MESA_timer.h"
|
|
|
|
|
|
#include "usm_api.h"
|
|
|
|
|
|
#include "Maat_rule.h"
|
|
|
|
|
|
#include "KafkaProducer.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "common.h"
|
|
|
|
|
|
#include "log.h"
|
|
|
|
|
|
#include "AV_interface.h"
|
|
|
|
|
|
#include "wiredLB.h"
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
#define CPZ_AV_PIC 0
|
|
|
|
|
|
#define CPZ_VOIP 1
|
|
|
|
|
|
|
|
|
|
|
|
#define MAX_THREAD_NUM 32
|
|
|
|
|
|
|
|
|
|
|
|
/*sned data; send wins; send whitelist*/
|
|
|
|
|
|
#define DEST_MAXNUM 8
|
|
|
|
|
|
/*special media to windows*/
|
|
|
|
|
|
#define SPECIAL_MEDIA_TYPE_MAXNUM 16 //in main.conf
|
|
|
|
|
|
#define SPECIAL_MEDIA_TABLE_MAXNUM 256 //special media type is 0Xxx, less than 256
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><>Ŀȷ<C4BF>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD>С*/
|
|
|
|
|
|
#define ACK_BUF_SIZE 1500
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct frag_rssb_parameter_s
|
|
|
|
|
|
{
|
|
|
|
|
|
void* asmis_log_handle;
|
|
|
|
|
|
/*data msg rec*/
|
|
|
|
|
|
void* recv_bizman[MAX_THREAD_NUM];
|
|
|
|
|
|
void* answer_sapp_bizman; //send msg to sapp
|
|
|
|
|
|
void* cpz_send_bizman; //send data to other cpz when multi
|
|
|
|
|
|
void* appdtc_handle; //send msg to sapp
|
|
|
|
|
|
|
|
|
|
|
|
Maat_feather_t feather;
|
|
|
|
|
|
|
|
|
|
|
|
USM_t* a_usm_handle;
|
|
|
|
|
|
unsigned int reader_cnt;
|
|
|
|
|
|
int usm_on_flag;
|
|
|
|
|
|
|
|
|
|
|
|
MESA_lqueue_head* recv_bizman_lq; //bizman recv frag queue, queue num=thread_num
|
|
|
|
|
|
MESA_lqueue_head* monitor_file_lq; //monitor service dump file
|
|
|
|
|
|
MESA_lqueue_head* av_record_lq; //av record file
|
|
|
|
|
|
MESA_lqueue_head* av_digest_record_lq; //av fuzzy_record file
|
|
|
|
|
|
MESA_lqueue_head app_lq; //app queue
|
|
|
|
|
|
|
|
|
|
|
|
MESA_htable_handle media_monitor_hash; //media_monitor_hash because full_file monitoe
|
|
|
|
|
|
MESA_htable_handle dumpfile_hash; //monitor dumpfile hash handle
|
|
|
|
|
|
MESA_htable_handle media_hash; //media_hash
|
|
|
|
|
|
|
|
|
|
|
|
MESA_timer_t* index_query_timer[MAX_THREAD_NUM];
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>*/
|
|
|
|
|
|
void* dedup_hd; //av_dedup_handle
|
|
|
|
|
|
void* dedup_logger; //av_dedup log
|
|
|
|
|
|
MESA_timer_t* multisrc_timer[MAX_THREAD_NUM];
|
|
|
|
|
|
|
|
|
|
|
|
KafkaProducer* kafka_producer; //kafka
|
|
|
|
|
|
|
|
|
|
|
|
/*log*/
|
|
|
|
|
|
FILE* media_create_file; //media create log
|
|
|
|
|
|
FILE* media_expire_file; //media expire log
|
|
|
|
|
|
FILE* resp_file; //survey log
|
|
|
|
|
|
|
|
|
|
|
|
pthread_mutex_t media_create_file_lock;
|
|
|
|
|
|
pthread_mutex_t media_expire_file_lock;
|
|
|
|
|
|
pthread_mutex_t resp_file_lock;
|
|
|
|
|
|
|
|
|
|
|
|
struct tm media_create_filetime;
|
|
|
|
|
|
struct tm media_expire_filetime;
|
|
|
|
|
|
struct tm resp_filetime;
|
|
|
|
|
|
time_t cur_time;
|
|
|
|
|
|
void* logger;
|
|
|
|
|
|
void* mid_trace_hd; //pid trace log handle
|
|
|
|
|
|
void* frag_logger; //about frag
|
|
|
|
|
|
void* voip_logger; //about dedup
|
|
|
|
|
|
|
|
|
|
|
|
/*send data*/
|
|
|
|
|
|
int send_fd[MAX_THREAD_NUM]; //unix socket : send frag
|
|
|
|
|
|
int send_sd[MAX_THREAD_NUM]; //udp socket :
|
|
|
|
|
|
|
|
|
|
|
|
/*special media type*/
|
|
|
|
|
|
char special_media_table[SPECIAL_MEDIA_TABLE_MAXNUM];
|
|
|
|
|
|
|
|
|
|
|
|
/*send data to windows system*/
|
|
|
|
|
|
int send_windows_sd[MAX_THREAD_NUM]; //udp socket : special media send to windows system
|
|
|
|
|
|
/*resp msg*/
|
|
|
|
|
|
int recv_msg_fd; //unix socket : response msg recv
|
|
|
|
|
|
int recv_msg_sd; //udp socket : response msg recv
|
|
|
|
|
|
int send_msg_sd; //udp socket : response msg send , send whitelist
|
|
|
|
|
|
|
|
|
|
|
|
int frag_loglevel; //because cal IP,
|
|
|
|
|
|
|
|
|
|
|
|
/*feedback to qd*/
|
|
|
|
|
|
msg_data_ack_t* fb_ack_hdr[MAX_THREAD_NUM];
|
|
|
|
|
|
char fb_ack_buf[MAX_THREAD_NUM][ACK_BUF_SIZE];
|
|
|
|
|
|
|
|
|
|
|
|
/*av record*/
|
|
|
|
|
|
FILE* av_record_curfile[MAX_THREAD_NUM];
|
|
|
|
|
|
uint64_t av_record_curcnt[MAX_THREAD_NUM];
|
|
|
|
|
|
|
|
|
|
|
|
/*av fuzzy record*/
|
|
|
|
|
|
FILE* av_digest_record_curfile[MAX_THREAD_NUM];
|
|
|
|
|
|
uint64_t av_digest_record_curcnt[MAX_THREAD_NUM];
|
|
|
|
|
|
|
|
|
|
|
|
short expr_tableid;
|
|
|
|
|
|
}frag_rssb_parameter_t;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct frag_rssb_configure_s
|
|
|
|
|
|
{
|
|
|
|
|
|
char store_filepath[MAX_PATH_LEN];
|
|
|
|
|
|
char trace_filepath[MAX_PATH_LEN];
|
|
|
|
|
|
char save_media_path[MAX_PATH_LEN];
|
|
|
|
|
|
char media_create_filename[MAX_PATH_LEN]; //create media
|
|
|
|
|
|
char media_expire_filename[MAX_PATH_LEN]; //expire media
|
|
|
|
|
|
char resp_filename[MAX_PATH_LEN]; //about resp msg and monitor and block
|
|
|
|
|
|
|
|
|
|
|
|
/*media hash*/
|
|
|
|
|
|
uint32_t media_hash_size;
|
|
|
|
|
|
uint32_t media_hash_max_elem_num;
|
|
|
|
|
|
uint32_t media_hash_expire_time;
|
|
|
|
|
|
/*deduptd hash*/
|
|
|
|
|
|
uint32_t deduptd_hash_size;
|
|
|
|
|
|
uint32_t deduptd_hash_max_elem_num;
|
|
|
|
|
|
uint32_t deduptd_hash_expire_time;
|
|
|
|
|
|
|
|
|
|
|
|
/*dumpfile hash*/
|
|
|
|
|
|
uint32_t dumpfile_hash_size;
|
|
|
|
|
|
uint32_t dumpfile_hash_max_elem_num;
|
|
|
|
|
|
uint32_t dumpfile_hash_expire_time;
|
|
|
|
|
|
/*monitor hash*/
|
|
|
|
|
|
uint32_t monitor_hash_size;
|
|
|
|
|
|
uint32_t monitor_hash_max_elem_num;
|
|
|
|
|
|
uint32_t monitor_hash_expire_time;
|
|
|
|
|
|
|
|
|
|
|
|
/*monitor service : save file*/
|
|
|
|
|
|
char monitor_file_root_dir[MAX_PATH_LEN];
|
|
|
|
|
|
uint16_t monitor_file_switch;
|
|
|
|
|
|
uint16_t monitor_file_days;
|
|
|
|
|
|
int16_t fuzzy_digest_switch;
|
|
|
|
|
|
int16_t modify_capIP_switch;
|
|
|
|
|
|
|
|
|
|
|
|
uint16_t bizman_port; //recv_bizman port, recv frag from sapp
|
|
|
|
|
|
uint16_t bizman_ack_port; //answer_sapp_bizman port, send msg to sapp
|
|
|
|
|
|
uint16_t msg_port;
|
|
|
|
|
|
uint16_t store_filepath_switch;
|
|
|
|
|
|
|
|
|
|
|
|
uint16_t renew_time_min;
|
|
|
|
|
|
uint16_t renew_time_max;
|
|
|
|
|
|
uint16_t renew_time_step;
|
|
|
|
|
|
/*send_msg_windows_sd , special media to windocs system*/
|
|
|
|
|
|
uint16_t special_media_fwd_switch; // is deputy system data like MP4 send to remote windows system
|
|
|
|
|
|
uint32_t special_media_wins_ip_num;
|
|
|
|
|
|
uint32_t special_media_wins_port_num;
|
|
|
|
|
|
in_addr_t special_media_wins_ip[DEST_MAXNUM];
|
|
|
|
|
|
in_port_t special_media_wins_port[DEST_MAXNUM];
|
|
|
|
|
|
|
|
|
|
|
|
/*send_msg_sd*/
|
|
|
|
|
|
struct sockaddr_in whitelist_addr[DEST_MAXNUM];
|
|
|
|
|
|
uint32_t whitelist_addr_num;
|
|
|
|
|
|
|
|
|
|
|
|
/*send data by unix*/
|
|
|
|
|
|
uint32_t send_dest_addr_num; //unix socket : send frag to dest
|
|
|
|
|
|
struct sockaddr_un send_dest_addr[DEST_MAXNUM]; //unix socket : send frag to dest
|
|
|
|
|
|
|
|
|
|
|
|
/*send data by udp*/
|
|
|
|
|
|
uint16_t send_dest_udp_port[DEST_MAXNUM]; //udp socket : send frag to dest
|
|
|
|
|
|
uint32_t send_dest_udp_ip_num;
|
|
|
|
|
|
in_addr_t send_dest_udp_iplist[DEST_MAXNUM]; //udp socket : send frag to dest
|
|
|
|
|
|
|
|
|
|
|
|
/*avrecord*/
|
|
|
|
|
|
char avrecord_filepath[MAX_PATH_LEN];
|
|
|
|
|
|
uint32_t avrecord_maxnum;
|
|
|
|
|
|
uint32_t local_ip_nr;
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t thread_num;
|
|
|
|
|
|
uint16_t bizman_queue_mode; //0:<3A><EFBFBD><DEB6>н<EFBFBD><D0BD><EFBFBD> 1:<3A><><EFBFBD>л<EFBFBD><D0BB><EFBFBD>
|
|
|
|
|
|
uint16_t avrecord_switch;
|
|
|
|
|
|
uint16_t forecast_switch;
|
|
|
|
|
|
uint32_t bizman_queue_maxnum; //bizman <20><><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
/*<2A><><EFBFBD>ض<EFBFBD>Դҵ<D4B4><D2B5>*/
|
|
|
|
|
|
uint32_t td_data_maxsize;
|
|
|
|
|
|
int16_t av_dedup_switch;
|
|
|
|
|
|
uint32_t multisrc_wait_timeout;
|
|
|
|
|
|
uint32_t index_query_timeout;
|
|
|
|
|
|
int16_t multisrc_timer_cb_maxtime;
|
|
|
|
|
|
int16_t index_query_timer_cb_maxtime;
|
|
|
|
|
|
int16_t dedup_invalid; //0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:<3A>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ϱ<EFBFBD> 2:
|
|
|
|
|
|
/*debug*/
|
|
|
|
|
|
int16_t all_hit_monitor_switch;
|
|
|
|
|
|
int16_t all_hit_monitor_complete_rate;
|
|
|
|
|
|
int16_t all_hit_filename; //<2F><><EFBFBD><EFBFBD>meidia_type<70><65><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
int16_t hls_in_aboffset_mode;
|
|
|
|
|
|
int16_t json_local_switch;
|
|
|
|
|
|
int16_t frag_survey_invalid;
|
|
|
|
|
|
int16_t ack_switch;
|
|
|
|
|
|
/*APPҵ<50><D2B5>*/
|
|
|
|
|
|
int16_t app_switch;
|
|
|
|
|
|
|
|
|
|
|
|
int16_t IVI_switch;
|
|
|
|
|
|
int16_t asmis_switch;
|
|
|
|
|
|
int16_t cpz_type;
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t* voip_survey_log_iplist; /*VOIP<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>IP*/
|
|
|
|
|
|
uint16_t voip_survey_log_port;
|
|
|
|
|
|
uint16_t voip_survey_log_ipnum;
|
|
|
|
|
|
uint16_t voip_full_log_port;
|
|
|
|
|
|
uint16_t voip_full_log_ipnum;
|
|
|
|
|
|
uint32_t* voip_full_log_iplist; /*VOIP<49><50>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>IP*/
|
|
|
|
|
|
|
|
|
|
|
|
int16_t voip_filter_switch; /*VOIP<49><50><EFBFBD><EFBFBD>media_type<70><65><EFBFBD>й<EFBFBD><D0B9><EFBFBD>*/
|
|
|
|
|
|
|
|
|
|
|
|
char kafka_brokers[512];
|
|
|
|
|
|
int16_t media_json_switch;
|
|
|
|
|
|
uint32_t fwd_ip_nr;
|
|
|
|
|
|
//WLB
|
|
|
|
|
|
char wlb_topic[WLB_MAX_TAG_SIZE];
|
|
|
|
|
|
char wlb_group_name[WLB_MAX_TAG_SIZE];
|
|
|
|
|
|
char user_tag[WLB_MAX_TAG_SIZE];
|
|
|
|
|
|
WLB_handle_t rssb_wlb_handle;
|
|
|
|
|
|
uint16_t wlb_on;
|
|
|
|
|
|
uint16_t health_check_interval;
|
|
|
|
|
|
uint16_t data_port;
|
|
|
|
|
|
uint32_t capacity;
|
|
|
|
|
|
uint32_t cost;
|
|
|
|
|
|
uint32_t wlb_report_interval;
|
|
|
|
|
|
uint32_t enable_override;
|
|
|
|
|
|
uint32_t health_check_port;
|
|
|
|
|
|
int16_t save_media;
|
|
|
|
|
|
|
2018-09-29 17:51:33 +08:00
|
|
|
|
uint32_t bfd_recv_port;
|
|
|
|
|
|
uint32_t bfd_send_port;
|
2018-09-29 14:57:32 +08:00
|
|
|
|
}frag_rssb_configure_t;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct frag_rssb_status_s
|
|
|
|
|
|
{
|
|
|
|
|
|
void* fs_handle;
|
|
|
|
|
|
void* sysfs_handle;
|
|
|
|
|
|
uint32_t stat_interval;
|
|
|
|
|
|
uint32_t sysinfo_interval;
|
|
|
|
|
|
|
|
|
|
|
|
uint64_t stat_info[LOG_TYPE_MAXNUM][LOG_STAT_MAXNUM];
|
|
|
|
|
|
uint64_t send_stat[DEST_MAXNUM][LOG_STAT_MAXNUM];
|
|
|
|
|
|
uint64_t send_lq_stat[DEST_MAXNUM][LOG_STAT_MAXNUM];//add by dumeijie
|
|
|
|
|
|
uint64_t wins_send_stat[DEST_MAXNUM][LOG_STAT_MAXNUM];
|
|
|
|
|
|
uint64_t whitelist_send_stat[DEST_MAXNUM][LOG_STAT_MAXNUM];
|
|
|
|
|
|
uint64_t media_stat[MEDIALOG_TYPE_MAXNUM];
|
|
|
|
|
|
uint64_t sysinfo_stat[SYSLOG_TYPE_MAXNUM][SYSLOG_STAT_MAXNUM];
|
|
|
|
|
|
|
|
|
|
|
|
/*stat*/
|
|
|
|
|
|
int log_column_id[LOG_STAT_MAXNUM];
|
|
|
|
|
|
int log_line_id[LOG_TYPE_MAXNUM];
|
|
|
|
|
|
int sendlog_line_id[DEST_MAXNUM*2];
|
|
|
|
|
|
int wins_sendlog_line_id[DEST_MAXNUM];
|
|
|
|
|
|
int whitelist_sendlog_line_id[DEST_MAXNUM];
|
|
|
|
|
|
int log_field_id[MEDIALOG_TYPE_MAXNUM]; //media_stat
|
|
|
|
|
|
/*sysinfo*/
|
|
|
|
|
|
int syslog_column_id[SYSLOG_STAT_MAXNUM];
|
|
|
|
|
|
int syslog_line_id[SYSLOG_TYPE_MAXNUM];
|
|
|
|
|
|
|
|
|
|
|
|
/*field_stat*/
|
|
|
|
|
|
char fs_app[32];
|
|
|
|
|
|
char fs_ip[32];
|
|
|
|
|
|
uint16_t fs_port;
|
|
|
|
|
|
uint16_t fs_remote_switch;
|
|
|
|
|
|
}frag_rssb_status_t;
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
extern "C" {
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|