#include #include #include #include #include #include "tsg_rule.h" #include "tsg_entry.h" static int send_raw_packet(struct traffic_mirror *ttm,char * pkt_ptr,int pkt_len, struct mirrored_vlan *vlan,int vlan_num,int thread_seq) { int i=0,ret=0; for(i=0; ifrag_packet), frag_pkt->pkt_len, vlan, vlan_num, thread_seq); frag_pkt = frag_pkt->next; } break; default: break; } return 0; } int tsg_notify_hited_monitor_result(const struct streaminfo *a_stream, struct Maat_rule_t *result, int result_num, int thread_seq) { if(g_tsg_para.mirror_switch==0) { return 0; } int vlan_num=0; struct mirrored_vlan vlan[MAX_RESULT_NUM]={0}; struct tcpall_context *context=NULL; vlan_num=tsg_get_vlan_id_by_monitor_rule(g_tsg_maat_feather, result, result_num, vlan, MAX_RESULT_NUM); tsg_set_vlan_id_to_tcpall(a_stream, &context, vlan, vlan_num, thread_seq); return 1; } int tsg_send_raw_packet_init(const char* conffile, void *logger) { MESA_load_profile_short_def(conffile, "TRAFFIC_MIRROR", "TRAFFIC_MIRROR_ENABLE", &g_tsg_para.mirror_switch, 0); if(g_tsg_para.mirror_switch==0) { return 0; } g_tsg_para.mirror_handle=tsg_traffic_mirror_init(conffile, g_tsg_para.logger); if(g_tsg_para.mirror_handle==NULL) { return -1; } return 0; }