summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tsg_send_raw_packet.cpp18
-rw-r--r--src/tsg_traffic_mirror.cpp13
-rw-r--r--src/tsg_traffic_mirror.h8
3 files changed, 20 insertions, 19 deletions
diff --git a/src/tsg_send_raw_packet.cpp b/src/tsg_send_raw_packet.cpp
index 132ff94..6fa9b80 100644
--- a/src/tsg_send_raw_packet.cpp
+++ b/src/tsg_send_raw_packet.cpp
@@ -11,11 +11,11 @@
static int send_raw_packet(struct traffic_mirror *ttm,char * pkt_ptr,int pkt_len,int *vlan_array,int vlan_num,int thread_seq)
{
- int ret=tsg_traffic_mirror_send_burst(ttm, (char *)pkt_ptr, pkt_len, vlan_array, vlan_num, thread_seq);
- if(ret==TRRAFFIC_MIRROR_SEND_SUCCESS)
- {
+ int ret=tsg_traffic_mirror_send_burst(ttm, (char *)pkt_ptr, pkt_len, vlan_array, vlan_num, thread_seq);
+ if(ret==TRAFFIC_MIRROR_SEND_SUCCESS)
+ {
FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_MIRRORED_PKT_SUCCESS], 0, FS_OP_ADD, 1);
- FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_MIRRORED_BYTE_SUCCESS], 0, FS_OP_ADD, pkt_len);
+ FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_MIRRORED_BYTE_SUCCESS], 0, FS_OP_ADD, pkt_len);
}
else
{
@@ -34,7 +34,7 @@ int tsg_send_raw_packet(const struct streaminfo *a_stream, int *vlan_id, int vla
void *p_eth_rawpkt=NULL;
int eth_rawpkt_len=0;
raw_ipfrag_list_t *frag_pkt=NULL;
-
+
if(g_tsg_para.mirror_switch==0)
{
return 0;
@@ -49,21 +49,21 @@ int tsg_send_raw_packet(const struct streaminfo *a_stream, int *vlan_id, int vla
{
break;
}
-
+
send_raw_packet(g_tsg_para.mirror_handle, (char *)p_eth_rawpkt, eth_rawpkt_len, vlan_id, vlan_id_num, thread_seq);
break;
case 1:
frag_pkt=(raw_ipfrag_list_t *)p_eth_rawpkt;
while(frag_pkt)
{
- send_raw_packet(g_tsg_para.mirror_handle, (char *)(frag_pkt->frag_packet), frag_pkt->pkt_len, vlan_id, vlan_id_num, thread_seq);
+ send_raw_packet(g_tsg_para.mirror_handle, (char *)(frag_pkt->frag_packet), frag_pkt->pkt_len, vlan_id, vlan_id_num, thread_seq);
frag_pkt = frag_pkt->next;
}
break;
default:
break;
}
-
+
return 0;
}
@@ -96,7 +96,7 @@ int tsg_send_raw_packet_init(const char* conffile, void *logger)
{
return 0;
}
-
+
g_tsg_para.mirror_handle=tsg_traffic_mirror_init(conffile, g_tsg_para.logger);
if(g_tsg_para.mirror_handle==NULL)
{
diff --git a/src/tsg_traffic_mirror.cpp b/src/tsg_traffic_mirror.cpp
index 93f9f81..df36f16 100644
--- a/src/tsg_traffic_mirror.cpp
+++ b/src/tsg_traffic_mirror.cpp
@@ -28,7 +28,7 @@ struct traffic_mirror
struct traffic_mirror *tsg_traffic_mirror_init(const char *conffile, void *logger)
{
- int ret=0,traffic_mirror_enable=TRRAFFIC_MIRROR_DISABLE;
+ int ret=0,traffic_mirror_enable=TRAFFIC_MIRROR_DISABLE;
struct traffic_mirror *ttm = NULL;
ttm=(struct traffic_mirror *)calloc(1, sizeof(struct traffic_mirror));
@@ -40,7 +40,7 @@ struct traffic_mirror *tsg_traffic_mirror_init(const char *conffile, void *logge
}
MESA_load_profile_int_def(conffile, "TRAFFIC_MIRROR", "TRAFFIC_MIRROR_ENABLE", &traffic_mirror_enable, 0);
- if (traffic_mirror_enable != TRRAFFIC_MIRROR_ENABLE)
+ if (traffic_mirror_enable != TRAFFIC_MIRROR_ENABLE)
{
MESA_handle_runtime_log(logger, RLOG_LV_FATAL, "TSG_TRAFFIC_MIRROR", "Traffic Mirror Is Disable !!!");
goto init_error;
@@ -131,7 +131,7 @@ int tsg_traffic_mirror_send_burst(struct traffic_mirror *ttm,char * pkt_ptr,int
return SEND_ERROR_VLAN_NUM_EXCEED_BURST_MAX;
}
- if (PREDICT_FALSE((vlan_num <= 1) || (vlan_array == NULL)))
+ if (PREDICT_FALSE((vlan_num < 1) || (vlan_array == NULL)))
{
tx_buffer_num = 1;
vlan_tag_array = &ttm->default_vlan_id;
@@ -157,11 +157,12 @@ int tsg_traffic_mirror_send_burst(struct traffic_mirror *ttm,char * pkt_ptr,int
marsio_buff_set_metadata(tx_buff_ptr,MR_BUFF_METADATA_VLAN_TCI,&vlan_id,sizeof(vlan_id));
}
- ret = marsio_send_burst_with_options(ttm->to_dev_sendpath, thread_seq, tx_buff, tx_buffer_num, MARSIO_SEND_OPT_FAST);
+ ret = marsio_send_burst(ttm->to_dev_sendpath, thread_seq, tx_buff, tx_buffer_num);
if (PREDICT_FALSE(ret < 0))
{
- return TRRAFFIC_MIRROR_SEND_ERROR_DROP;
+ marsio_buff_free(ttm->mr_instance, tx_buff, tx_buffer_num, MARSIO_SOCKET_ID_ANY, MARSIO_LCORE_ID_ANY);
+ return TRAFFIC_MIRROR_SEND_ERROR_DROP;
}
- return TRRAFFIC_MIRROR_SEND_SUCCESS;
+ return TRAFFIC_MIRROR_SEND_SUCCESS;
} \ No newline at end of file
diff --git a/src/tsg_traffic_mirror.h b/src/tsg_traffic_mirror.h
index 69f2bce..35a59b6 100644
--- a/src/tsg_traffic_mirror.h
+++ b/src/tsg_traffic_mirror.h
@@ -1,10 +1,10 @@
#ifndef __TSG_TRAFFIC_MIRROR_H__
#define __TSG_TRAFFIC_MIRROR_H__
-#define TRRAFFIC_MIRROR_DISABLE 0
-#define TRRAFFIC_MIRROR_ENABLE 1
+#define TRAFFIC_MIRROR_DISABLE 0
+#define TRAFFIC_MIRROR_ENABLE 1
-#define TRRAFFIC_MIRROR_SEND_SUCCESS 0
+#define TRAFFIC_MIRROR_SEND_SUCCESS 0
#define SEND_ERROR_NOT_INIT -1
#define SEND_ERROR_THREAD_SEQ_ERR -2
#define SEND_ERROR_PKT_BUFFER_IS_NULL -3
@@ -13,7 +13,7 @@
#define SEND_ERROR_VLAN_NUM_ERROR -6
#define SEND_ERROR_VLAN_NUM_EXCEED_BURST_MAX -7
#define SEND_ERROR_BUFF_MALLOC_ERROR -8
-#define TRRAFFIC_MIRROR_SEND_ERROR_DROP -9
+#define TRAFFIC_MIRROR_SEND_ERROR_DROP -9
struct traffic_mirror;