summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
author童宗振 <[email protected]>2024-07-10 07:04:46 +0000
committer童宗振 <[email protected]>2024-07-10 07:04:46 +0000
commitb1d39093ebd855be544c036d0fbd393addc23c91 (patch)
tree5f1174c5bbb4a989afea94968b1752dee05509ae /service
parentaf9177f5e0b15c80d5370e681526fc1ccac7d0ff (diff)
(TSG-21729)metadata add egress_action fieldv4.8.15-20240710
Diffstat (limited to 'service')
-rw-r--r--service/src/dp_trace.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/service/src/dp_trace.c b/service/src/dp_trace.c
index 2db3647..4d4b656 100644
--- a/service/src/dp_trace.c
+++ b/service/src/dp_trace.c
@@ -206,6 +206,9 @@ void hook_rte_pktmbuf_free(struct rte_mbuf * m)
.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 dropped");
}
+
+ struct mrb_metadata * mrb_meta = rte_mbuf_to_priv(m);
+ mrb_meta->egress_action = MR_EGRESS_ACTION_DROP;
dp_trace_record_write(trace, m, rte_lcore_id());
rte_pktmbuf_free(m);
}
@@ -215,21 +218,25 @@ void hook_rte_pktmbuf_free_bulk(struct rte_mbuf ** mbufs, unsigned int count)
struct dp_trace_process * trace = sc_main_get()->trace;
for (unsigned int idx = 0; idx < count; idx++)
{
- if (mbufs[idx] == NULL)
+ struct rte_mbuf * mbuf = mbufs[idx];
+ if (mbuf == NULL)
continue;
- if (unlikely(dp_trace_record_can_emit(mbufs[idx], DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)))
+ if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)))
{
struct dp_trace_record_meta meta = {
.measurement_type = DP_TRACE_MEASUREMENT_TYPE_TELEMETRY, .appsym = MR_TRACE_APPSYM, .module = ""};
- dp_trace_record_emit_str(sc_main_get()->trace, mbufs[idx], rte_lcore_id(), &meta, "packet dropped");
+ dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, "packet dropped");
}
- if (unlikely(dp_trace_record_can_emit(mbufs[idx], DP_TRACE_MEASUREMENT_TYPE_TRACE)))
+ if (unlikely(dp_trace_record_can_emit(mbuf, 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 dropped");
+ dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, "packet dropped");
}
- dp_trace_record_write(trace, mbufs[idx], rte_lcore_id());
+
+ struct mrb_metadata * mrb_meta = rte_mbuf_to_priv(mbuf);
+ mrb_meta->egress_action = MR_EGRESS_ACTION_DROP;
+ dp_trace_record_write(trace, mbuf, rte_lcore_id());
}
rte_pktmbuf_free_bulk(mbufs, count);
} \ No newline at end of file