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 /app/src/dp_trace.c | |
| parent | 4e0614bfdd83e4eb3f7a39ef7fa5ab2514b2f0e7 (diff) | |
(TSG-21101)dp_trace uses traffic_link_id as a restrictionv4.8.6-20240508
Diffstat (limited to 'app/src/dp_trace.c')
| -rw-r--r-- | app/src/dp_trace.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/app/src/dp_trace.c b/app/src/dp_trace.c index 9d4a47f..aa9713e 100644 --- a/app/src/dp_trace.c +++ b/app/src/dp_trace.c @@ -67,7 +67,7 @@ int marsio_dp_trace_measurements_can_emit(__rte_unused struct mr_instance * inst struct mrb_metadata * mrb_meta = rte_mbuf_to_priv((struct rte_mbuf *)mbuf); if (unlikely(mrb_meta->measurement_type == DP_TRACE_MEASUREMENT_TYPE_UNKNOW)) { - marsio_dp_trace_filter_exec(instance, (struct rte_mbuf *)mbuf); + dp_trace_filter_exec(instance->trace, (struct rte_mbuf *)mbuf, 0, marsio_thread_id_get()); } return dp_trace_record_can_emit((struct rte_mbuf *)mbuf, measurement_type); } @@ -130,6 +130,17 @@ void marsio_rte_mempool_generic_put(struct rte_mempool * mp, void * const * obj_ struct mr_instance * mr_instance = marsio_current(); for (unsigned int i = 0; i < n; i++) { + if (marsio_dp_trace_measurements_can_emit(mr_instance, obj_table[i], DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)) + { + marsio_dp_trace_measurement_emit_str(mr_instance, obj_table[i], DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, NULL, + "packet dropped by application"); + } + + if (marsio_dp_trace_measurements_can_emit(mr_instance, obj_table[i], DP_TRACE_MEASUREMENT_TYPE_TRACE)) + { + marsio_dp_trace_measurement_emit_str(mr_instance, obj_table[i], DP_TRACE_MEASUREMENT_TYPE_TRACE, NULL, + "packet dropped by application"); + } marsio_dp_trace_record_write(mr_instance, (struct rte_mbuf *)obj_table[i]); } rte_mempool_generic_put(mp, obj_table, n, cache); @@ -372,6 +383,13 @@ void * marsio_pkt_jump_to_innermost_layer(const marsio_buff_t * mbuf, enum compl struct mrb_metadata * mrb_meta = rte_mbuf_to_priv((struct rte_mbuf *)mbuf); struct pkt_parser_result * pkt_parser_result = &mrb_meta->pkt_parser_result; + if (pkt_parser_result->nr_layers == 0) + { + struct pkt_parser handler; + pkt_parser_init(&handler, pkt_parser_result, LAYER_TYPE_ALL, MR_PKT_PARSER_LAYERS_MAX); + pkt_parser_exec(&handler, mbuf); + } + void * ret = NULL; for (int i = pkt_parser_result->nr_layers - 1; i >= 0; i--) { |
