summaryrefslogtreecommitdiff
path: root/service/src
diff options
context:
space:
mode:
author童宗振 <[email protected]>2024-05-08 13:50:38 +0000
committer童宗振 <[email protected]>2024-05-08 13:50:38 +0000
commitcc85bda3340ba5aedea82050ce458fc145f8e064 (patch)
tree28afdc8c94b610d4ede808dcf35eb4f70f0332fc /service/src
parent4e0614bfdd83e4eb3f7a39ef7fa5ab2514b2f0e7 (diff)
(TSG-21101)dp_trace uses traffic_link_id as a restrictionv4.8.6-20240508
Diffstat (limited to 'service/src')
-rw-r--r--service/src/dp_trace.c12
-rw-r--r--service/src/node_classifier.c3
-rw-r--r--service/src/node_phydev.c3
3 files changed, 15 insertions, 3 deletions
diff --git a/service/src/dp_trace.c b/service/src/dp_trace.c
index 35949d0..166a2d1 100644
--- a/service/src/dp_trace.c
+++ b/service/src/dp_trace.c
@@ -194,6 +194,12 @@ void hook_rte_pktmbuf_free(struct rte_mbuf * m)
if (m == NULL)
return;
struct dp_trace_process * trace = sc_main_get()->trace;
+ if (unlikely(dp_trace_record_can_emit(m, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
+ {
+ struct dp_trace_record_meta meta = {
+ .measurement_type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = ""};
+ dp_trace_record_emit_str(sc_main_get()->trace, m, rte_lcore_id(), &meta, "packet free.");
+ }
dp_trace_record_write(trace, m, rte_lcore_id());
rte_pktmbuf_free(m);
}
@@ -205,6 +211,12 @@ void hook_rte_pktmbuf_free_bulk(struct rte_mbuf ** mbufs, unsigned int count)
{
if (mbufs[idx] == NULL)
continue;
+ if (unlikely(dp_trace_record_can_emit(mbufs[idx], DP_TRACE_MEASUREMENT_TYPE_TRACE)))
+ {
+ struct dp_trace_record_meta meta = {
+ .measurement_type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = ""};
+ dp_trace_record_emit_str(sc_main_get()->trace, mbufs[idx], rte_lcore_id(), &meta, "packet free.");
+ }
dp_trace_record_write(trace, mbufs[idx], rte_lcore_id());
}
rte_pktmbuf_free_bulk(mbufs, count);
diff --git a/service/src/node_classifier.c b/service/src/node_classifier.c
index d4e87e3..c1784ce 100644
--- a/service/src/node_classifier.c
+++ b/service/src/node_classifier.c
@@ -428,6 +428,7 @@ static __rte_always_inline uint16_t classifier_node_process(struct rte_graph * g
for (uint8_t pkt_idx = 0; pkt_idx < FWDSTEP; pkt_idx++)
{
mrb_metadata[pkt_idx] = mrbuf_cz_data(pending_mbufs[pkt_idx], MR_NODE_CTRLZONE_ID);
+ dp_trace_filter_exec(sc_main_get()->trace, pending_mbufs[pkt_idx], 0, lcore_id);
}
uint16_t domain_field_for_pkts[FWDSTEP];
@@ -532,6 +533,8 @@ static __rte_always_inline uint16_t classifier_node_process(struct rte_graph * g
mbufs += 1;
n_left_from -= 1;
+ dp_trace_filter_exec(sc_main_get()->trace, mbuf0, 0, lcore_id);
+
struct match_result_engine result;
struct mrb_metadata * mrb_metadata = mrbuf_cz_data(mbuf0, MR_NODE_CTRLZONE_ID);
uint16_t pattern_group_id =
diff --git a/service/src/node_phydev.c b/service/src/node_phydev.c
index 39c16f0..b5a74a9 100644
--- a/service/src/node_phydev.c
+++ b/service/src/node_phydev.c
@@ -527,9 +527,6 @@ static __rte_always_inline uint16_t dpdk_dev_rx_node_process(struct rte_graph *
parser_results[i] = &mrb_meta->pkt_parser_result;
- /* mark packets for trace*/
- dp_trace_filter_exec(sc_main_get()->trace, mbuf, 0, rte_lcore_id());
-
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{