summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangmenglan <[email protected]>2023-06-14 19:54:46 +0800
committerwangmenglan <[email protected]>2023-06-14 19:54:46 +0800
commitb76e5452a6e75d01bca80e9c1e824307fb053836 (patch)
tree56fac6cede2e4c4d0ac0216578858247ace95018
parent30f0f83566fefe9a30d561f78f50d8cc60167204 (diff)
traffic_mirror增加配置项app_symbolv4.8.28-20230615
-rw-r--r--conf/tfe/tfe.conf1
-rw-r--r--plugin/business/traffic-mirror/include/traffic_mirror.h4
-rw-r--r--plugin/business/traffic-mirror/src/entry.cpp13
-rw-r--r--plugin/business/traffic-mirror/src/ethdev.cpp6
4 files changed, 17 insertions, 7 deletions
diff --git a/conf/tfe/tfe.conf b/conf/tfe/tfe.conf
index 0dedc79..cac29ad 100644
--- a/conf/tfe/tfe.conf
+++ b/conf/tfe/tfe.conf
@@ -168,6 +168,7 @@ type=1
default_vlan_id=2
table_info=resource/pangu/table_info_traffic_mirror.conf
stat_file=log/traffic_mirror.status
+app_symbol=tfe-mirror
[traffic_steering]
enable_steering_http=0
diff --git a/plugin/business/traffic-mirror/include/traffic_mirror.h b/plugin/business/traffic-mirror/include/traffic_mirror.h
index a7f2388..a062f64 100644
--- a/plugin/business/traffic-mirror/include/traffic_mirror.h
+++ b/plugin/business/traffic-mirror/include/traffic_mirror.h
@@ -109,8 +109,8 @@ struct traffic_mirror_rebuild_target
};
struct traffic_mirror_ethdev * traffic_mirror_ethdev_pcap_create(const char * str_ethdev, void * logger);
-struct traffic_mirror_ethdev * traffic_mirror_ethdev_mr4_create(const char * str_ethdev,
- unsigned int nr_threads, void * logger);
+struct traffic_mirror_ethdev * traffic_mirror_ethdev_mr4_create(const char * str_ethdev,
+ const char * str_app_name, unsigned int nr_threads, void * logger);
void traffic_mirror_ethdev_destroy(struct traffic_mirror_ethdev * ethdev);
int traffic_mirror_ethdev_finish(struct traffic_mirror_ethdev * ethdev, unsigned int tid, unsigned int pktlen);
diff --git a/plugin/business/traffic-mirror/src/entry.cpp b/plugin/business/traffic-mirror/src/entry.cpp
index 262a76e..e435534 100644
--- a/plugin/business/traffic-mirror/src/entry.cpp
+++ b/plugin/business/traffic-mirror/src/entry.cpp
@@ -390,6 +390,7 @@ error_out:
static int traffic_mirror_ethdev_init(struct traffic_mirror_instance * instance)
{
char str_ethdev[TFE_SYMBOL_MAX] = {0};
+ char app_symbol[TFE_SYMBOL_MAX] = {0};
const char * profile = "./conf/tfe/tfe.conf";
int ret = MESA_load_profile_string_nodef(profile, "traffic_mirror", "device",
@@ -407,14 +408,22 @@ static int traffic_mirror_ethdev_init(struct traffic_mirror_instance * instance)
unsigned int device_type;
MESA_load_profile_uint_def(profile, "traffic_mirror", "type", &device_type, TRAFFIC_MIRROR_ETHDEV_AF_PACKET);
+ ret = MESA_load_profile_string_nodef(profile, "traffic_mirror", "app_symbol", app_symbol, sizeof(app_symbol));
+ if (ret < 0)
+ {
+ TFE_LOG_ERROR(instance->logger, "failed at reading conffile, "
+ "[traffic_mirror]app_symbol is not defined.");
+ return -1;
+ }
+
if (device_type == TRAFFIC_MIRROR_ETHDEV_AF_PACKET)
{
instance->ethdev = traffic_mirror_ethdev_pcap_create(str_ethdev, instance->logger);
}
else if(device_type == TRAFFIC_MIRROR_ETHDEV_MARSIO)
{
- instance->ethdev = traffic_mirror_ethdev_mr4_create(str_ethdev,
- tfe_proxy_get_work_thread_count(), instance->logger);
+ instance->ethdev = traffic_mirror_ethdev_mr4_create(str_ethdev,
+ app_symbol, tfe_proxy_get_work_thread_count(), instance->logger);
}
else
{
diff --git a/plugin/business/traffic-mirror/src/ethdev.cpp b/plugin/business/traffic-mirror/src/ethdev.cpp
index ed7bfee..0d6df0a 100644
--- a/plugin/business/traffic-mirror/src/ethdev.cpp
+++ b/plugin/business/traffic-mirror/src/ethdev.cpp
@@ -134,8 +134,8 @@ char * traffic_mirror_ethdev_send_prepare(struct traffic_mirror_ethdev * ethdev,
/* =============================== VIRTUAL INTERFACE END =========================================== */
-struct traffic_mirror_ethdev * traffic_mirror_ethdev_mr4_create(const char * str_ethdev,
- unsigned int nr_threads, void * logger)
+struct traffic_mirror_ethdev * traffic_mirror_ethdev_mr4_create(const char * str_ethdev,
+ const char * str_app_name, unsigned int nr_threads, void * logger)
{
struct traffic_mirror_ethdev * ethdev = ALLOC(struct traffic_mirror_ethdev, 1);
ethdev->type = TRAFFIC_MIRROR_ETHDEV_MARSIO;
@@ -152,7 +152,7 @@ struct traffic_mirror_ethdev * traffic_mirror_ethdev_mr4_create(const char * str
detail_mr4->instance = marsio_create();
assert(detail_mr4->instance != NULL);
- if (marsio_init(detail_mr4->instance, "tfe-traffic-mirror") < 0)
+ if (marsio_init(detail_mr4->instance, str_app_name) < 0)
{
TFE_LOG_ERROR(logger, "failed at init MARSIOv4 instance.");
goto errout;