diff options
| author | 童宗振 <[email protected]> | 2024-05-08 13:50:38 +0000 |
|---|---|---|
| committer | 童宗振 <[email protected]> | 2024-05-08 13:50:38 +0000 |
| commit | cc85bda3340ba5aedea82050ce458fc145f8e064 (patch) | |
| tree | 28afdc8c94b610d4ede808dcf35eb4f70f0332fc /service | |
| parent | 4e0614bfdd83e4eb3f7a39ef7fa5ab2514b2f0e7 (diff) | |
(TSG-21101)dp_trace uses traffic_link_id as a restrictionv4.8.6-20240508
Diffstat (limited to 'service')
| -rw-r--r-- | service/src/dp_trace.c | 12 | ||||
| -rw-r--r-- | service/src/node_classifier.c | 3 | ||||
| -rw-r--r-- | service/src/node_phydev.c | 3 |
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))) { |
