/* * Copyright (c) 2014 * MESA Group,Institute of Information Engineering, Chinese Academy of Sciences. * All rights reserved. * * Authors: Zheng Chao (zhengchao@iie.ac.cn) * * Version: v2.0 April 5, 2014 (ZhengChao) */ #ifndef _AVENTRY_H_ #define _AVENTRY_H_ #ifndef __cplusplus #error("This file should be compiled with C++ compiler") #endif #include "KafkaProducer.h" #include "AV_types.h" #include #include #include #ifdef __cplusplus extern "C" { #endif #define MAX_LOCATION_NUM 2 #define MAX_PER_LOC_BIZMAN 4 #define MAX_AV_DST_TYPE 5 struct tdIP { unsigned int ip; unsigned int location;//0: backend,1:frontend; }; typedef struct _FBOption { char user_tag[128]; int wlb_override; char location_type; char uiAvDstFunc[13]; unsigned short data_port; int wlb_primary_ip_num[MAX_LOCATION_NUM]; int wlb_secondary_ip_num[MAX_LOCATION_NUM]; unsigned short wlb_health_port[MAX_LOCATION_NUM]; WLB_handle_t wlb_handle[MAX_LOCATION_NUM]; char wlb_group[MAX_LOCATION_NUM][256]; char wlb_primary_ip[MAX_LOCATION_NUM][512]; char wlb_secondary_ip[MAX_LOCATION_NUM][512]; struct WLB_consumer_t wlb_cons[MAX_LOCATION_NUM][32]; }FBOption_t; #define av_module_name "AV_Module" #define voip_module_name "VOIP_Module" typedef struct _stTVGlobalOption { // For AV Data SendBack Setting char sSendDev[10]; // 回传设备名称 unsigned short uiBSendPortNum[MAX_AV_DST_TYPE]; // 回传端口个数 unsigned short iBIPMode[MAX_AV_DST_TYPE]; // 回传模式个数 unsigned int iBSendIPNum[MAX_AV_DST_TYPE]; // 回传后端机数量 tdIP *aiBSendIP[MAX_AV_DST_TYPE]; //回传 IP 列表 unsigned short uiBSendPort[MAX_AV_DST_TYPE]; // 回传端口 unsigned short DupSendMod; //复制发送模式,测试用 unsigned short threshold; unsigned short expire_after; unsigned int DupSendMetaSwitch; unsigned int iSendLogModeSwitch; unsigned int iUdpSendLogIPNum; unsigned int iUdpSendLogIP; unsigned short iUdpSendLogPort; unsigned short iImageAnalyseIPMode; unsigned int iImageAnalyseIPNum; tdIP *aiImageAnalyseServer; unsigned short uiImageAnalyseSendPort; unsigned short uiImageAnalyseSendPortNum; unsigned short iAppAnalyseIPMode; unsigned int iAppAnalyseIPNum; tdIP *aiAppAnalyseServer; unsigned short uiAppAnalyseSendPort; unsigned short uiAppAnalyseSendPortNum; unsigned int iHdIPNum[MAX_AV_DST_TYPE]; // 后端机数量 tdIP *aiHdIP[MAX_AV_DST_TYPE]; // 后端 IP 列表 unsigned int iLogHdstat[MAX_AV_DST_TYPE]; //记录后端状态 // For Local server port; unsigned short uiResultReceivePort; // 本机接收分析结果的端口号 // For Configure and Log Server Setting char sLogServer[128]; // 音视频日志服务器IP unsigned short iLogPort; // 音视频日志服务器端口 unsigned int sLogVoipServer; // 音视频VOIP日志服务器IP unsigned short iLogVoipPort; // 音视频VOIP日志服务器端口 char table_info_path[256]; char inc_cfg_dir[256]; char full_cfg_dir[256]; char backup_cfg_dir[256]; char voip_table_info_path[256]; char voip_inc_cfg_dir[256]; char voip_full_cfg_dir[256]; char global_dynamic_rule_table_info_path[256]; char local_dynamic_rule_table_info_path[256]; char global_dynamic_rule_redis_ip[256]; char local_dynamic_rule_redis_ip[256]; unsigned short global_dynamic_rule_redis_port_num; unsigned short global_dynamic_rule_redis_port; unsigned short local_dynamic_rule_redis_port; unsigned short dynlist_listen_port; // For Hash List size unsigned int uiDynamicBWSize; // 动态敏感/非敏感名单大小 unsigned int uiDynamicB_ExpireTime; // 动态敏感名单失效时间 unsigned int uiDynamicW_ExpireTime; // 动态非敏感名单失效时间 unsigned int uiTVListSize; // 节目名单表大小 // Switch for debug Setting unsigned short iLog_SendBack_Data; // 回传数据日志记录开关 unsigned short iLog_Found_Prog; // 发现的节目URL日志记录开关 unsigned short iLog_Fendu_Msg_Act; // FD消息和动作日志记录开关 unsigned short iLog_Config; // 配置接受管理日志记录开关 unsigned short uiSw_Store_Stream; // 流数据存储日志记录开关 unsigned short iSendMetaLog; // 记录发送节目元信息和头包的开关 unsigned int uiLogMsgLocal; // 数据是否存储在前端机器上 unsigned int uiLogFileSize; // 存储文件长度 unsigned int uiNetlogSwitch; //asmis log switch unsigned short iLog_Found_BtProg; // 识别的bt节目 unsigned short iLog_Found_BtInfo; // bt信息 unsigned short iStaticsLog; // 统计日志本地记录开关 unsigned short iStaticsLogZip; // 统计日志是否进行压缩开关 unsigned int uiJsonRuleSwitch; unsigned int uiFengDu; unsigned int uiConnBlklistSwitch; // do 3 tuple black list switch unsigned int uiMinImageSize; unsigned int uiMaxImageSize; //add by lqy 20110329 unsigned int uiLenLimited; unsigned int uiMinAvSize; unsigned int uiMaxAvSize; unsigned int uiClientIP; // unsigned int uiLocalIP; // localip; unsigned int uiDoSendData; // wheather send data ? unsigned int uiRawSendData; //raw Send Data Switch unsigned int uiPagSendData; //pag Send Data Switch unsigned int uiLoopSendData; // loop Send Data Switch unsigned int uiLockSwitch; // lock Switch unsigned int uiAckSendData; //ack av data switch unsigned int uiAVDataMaxLen; unsigned int uiAckListenPort; // ack listern port unsigned int uiAckQueueSize; // ack retransmit queue unsigned int uiAckTimeout; // ack time-out unsigned int uiAckThreshold; // bytes that required ack in the front of a program unsigned int uiTvQueueSize; //tv datasize unsigned int uiBizmanMaxResendTimes;//5 times as default unsigned int uiBizmanResendTimeBaseMiliSeconds;//500ms as default unsigned int uiBizmanStreamFrozenMiliSeconds;//30000ms as default unsigned int uiBizmanSendSmoothMiliSeconds; unsigned int uiBizmanCacheSmoothPktsLimit; unsigned int local_dynhash_timeout; unsigned int BlockWhitehashTimeout; unsigned int log_accumulate_timeout; unsigned int log_max_accumulate_cnt; unsigned int voip_switch; unsigned int prog_trans_kafka_switch; unsigned int fd_type2_kafka_switch; unsigned int redis_switch; char log_acc_service_type[1024]; unsigned int stat_cycle; unsigned int screen_print_switch; FBOption_t fbOption[MAX_AV_DST_TYPE]; unsigned int local_ip_nr; unsigned int log_local_msg; char local_ip_str[128]; char log_local_msg_path[128]; char prog_trans_kafka_brokers[1024]; char fd_type2_kafka_brokers[1024]; KafkaProducer *prog_trans_kafka_producer; char fs2_ip[32]; unsigned short fs2_port; }tdAVOption; #define AV_STAT_FIELD_MAX_NUM 60 #define AV_STAT_FIELD_PROG_CNT 0 #define AV_STAT_FIELD_SND_BYTS 1 #define AV_STAT_FIELD_SND_PKTS 2 #define AV_STAT_FIELD_SND_ERR 3 #define AV_STAT_FIELD_RESORT_BYTS 4 #define AV_STAT_FIELD_RESORT_PKTS 5 #define AV_STAT_FIELD_SURVEY_CNT 6 #define AV_STAT_FIELD_DEDUP_BYTS 7 #define AV_STAT_FIELD_DEDUP_PKTS 8 #define AV_STAT_FIELD_PRE_ACK 9 #define AV_STAT_FIELD_LOG_CNT 10 #define AV_STAT_FIELD_IMAGE_BYTS 11 #define AV_STAT_FIELD_IMAGE_PKTS 12 #define AV_STAT_FIELD_IMAGE_CNT 13 #define AV_STAT_FIELD_ADD_ACC 14 #define AV_STAT_FIELD_DEL_ACC 15 #define AV_STAT_FIELD_ADD_TRANSF 16 #define AV_STAT_FIELD_DEL_TRANSF 17 #define AV_STAT_FIELD_READ_TRANSF 18 #define AV_STAT_FIELD_APP_BYTS 19 #define AV_STAT_FIELD_APP_PKTS 20 #define AV_STAT_FIELD_APP_CNT 21 #define AV_STAT_FIELD_FRAG_BYTS 22 #define AV_STAT_FIELD_FRAG_PKTS 23 #define AV_STAT_FIELD_FRAG_CNT 24 #define AV_STAT_FIELD_KFA_SEND_NUM 25 #define AV_STAT_FIELD_KFA_SEND_BYTS 26 #define AV_STAT_FIELD_KFA_DROP_NUM 27 #define AV_STAT_FIELD_KFA_DROP_BYTS 28 #define AV_STAT_FIELD_VOIP_BYTS 29 #define AV_STAT_FIELD_VOIP_PKTS 30 #define AV_STAT_FIELD_VOIP_CNT 31 #define AV_STAT_FIELD_KFA_FD2_NUM 32 #define AV_STAT_FIELD_KFA_FD2_BYTS 33 #define AV_STAT_FIELD_KFA_DROP_FD2_NUM 34 #define AV_STAT_FIELD_KFA_DROP_FD2_BYTS 35 #define AV_STAT_FIELD_SAPP_BYTES 36 #define AV_STAT_FIELD_SAPP_PKTS 37 #define AV_STAT_FIELD_HIT_DYN_IP 38 #define AV_STAT_FIELD_SIP_SIG_NUM 39 #define AV_STAT_FIELD_VOIP_LOG_CNT 40 #define AV_STAT_FIELD_SEV17_LOG 41 #define AV_STAT_FIELD_SEV35_LOG 42 #define AV_STAT_FIELD_SEV17_SURVEY 43 #define AV_STAT_FIELD_SEV35_SURVEY 44 #define AV_STAT_FIELD_RTP_CODING_KNOWN_NUM 45 #define AV_STAT_FIELD_RTP_CODING_KNOWN_BYTS 46 #define AV_STAT_FIELD_IDENTIFY_AV_DUP_PROG 47 #define AV_STAT_FIELD_IDENTIFY_AV_DUP_PKTS 48 #define AV_STAT_FIELD_IDENTIFY_AV_DUP_BYTS 49 #define AV_STAT_FIELD_HUD_S 50 #define AV_STAT_FIELD_HUD_D 51 #define AV_STAT_FIELD_CM_CNT 52 #define AV_STAT_FIELD_FRAG_IDX_CNT 53 #define AV_STAT_FIELD_CM_302_CNT 54 #define AV_STAT_FIELD_CM_GUMBO_IN_CNT 55 #define AV_STAT_FIELD_CM_GUMBO_OUT_CNT 56 #define AV_STAT_FIELD_CM_URL_CNT 57 #define AV_STAT_FIELD_ALL_LOG_REFER 58 #define AV_STAT_FIELD_FD2_LOG_REFER 59 typedef struct { unsigned long long id; const char *str; }fs2_str_contrast_id_t; typedef struct _av_stat_t { unsigned long proto_bytes[AV_PROTOCOL_MAX_NUM]; unsigned long proto_pkts[AV_PROTOCOL_MAX_NUM]; unsigned long prog_cnt; unsigned long bytes; unsigned long pkts; unsigned long send_err; unsigned long resort_bytes; unsigned long resort_pkts; unsigned long image_bytes; unsigned long image_pkts; unsigned long image_cnt; unsigned long survey_cnt; unsigned long avsendpkt; unsigned long av_dedup_bytes; unsigned long av_dedup_pkt; unsigned long avpreacknum; unsigned long log_cnt; unsigned long add_transf; unsigned long del_transf; unsigned long read_transf; unsigned long add_acc; unsigned long del_acc; unsigned long app_bytes; unsigned long app_pkts; unsigned long app_cnt; unsigned long frag_bytes; unsigned long frag_pkts; unsigned long frag_cnt; unsigned long voip_bytes; unsigned long voip_pkts; unsigned long voip_cnt; int fs_id[AV_STAT_FIELD_MAX_NUM]; }AV_stat_t; extern tdAVOption g_AVOption; extern AV_stat_t g_AVStat; extern int g_iAVSwitch; extern void *g_av_logger; extern void *g_img_fp_scanner; extern unsigned int g_AV_CurrentTime; extern unsigned int g_thread_num; extern KafkaProducer *g_multi_kafka_producer; extern screen_stat_handle_t g_av_stat_handle; extern screen_stat_handle_t g_AV_scan_feather; extern screen_stat_handle_t g_VOIP_scan_feather; extern screen_stat_handle_t g_AV_global_feather; void net_log_ysp_info(int interval,unsigned long long *inputinfo,unsigned long long *outputinfo); int avchecklogip(const struct layer_addr* paddr); extern FILE * g_BlockMsgfd; extern FILE * g_BlockActionfd; extern FILE * g_SndBackfd[MAX_THREAD_NUM]; extern FILE * g_fp_logprog; extern FILE * g_rtspfd; extern FILE * g_Configfd; extern FILE * g_Staticsfd; extern FILE * g_SendMetafd; extern FILE * g_DropRate; void WriteLocalLog(FILE * fp,const char *fmt,...); #ifdef __cplusplus } #endif #endif