summaryrefslogtreecommitdiff
path: root/app/src/dp_trace.c
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 /app/src/dp_trace.c
parent4e0614bfdd83e4eb3f7a39ef7fa5ab2514b2f0e7 (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.c20
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--)
{