diff options
| author | 童宗振 <[email protected]> | 2024-07-10 07:04:46 +0000 |
|---|---|---|
| committer | 童宗振 <[email protected]> | 2024-07-10 07:04:46 +0000 |
| commit | b1d39093ebd855be544c036d0fbd393addc23c91 (patch) | |
| tree | 5f1174c5bbb4a989afea94968b1752dee05509ae /service | |
| parent | af9177f5e0b15c80d5370e681526fc1ccac7d0ff (diff) | |
(TSG-21729)metadata add egress_action fieldv4.8.15-20240710
Diffstat (limited to 'service')
| -rw-r--r-- | service/src/dp_trace.c | 19 |
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 |
