summaryrefslogtreecommitdiff
path: root/service/src
diff options
context:
space:
mode:
author童宗振 <[email protected]>2024-05-10 11:53:21 +0000
committer童宗振 <[email protected]>2024-05-10 11:53:21 +0000
commit884090756b137be8bfbd7b301527c9402eb3d1a4 (patch)
tree7ea5f4b38a32d947833454fecbee0403e0f35732 /service/src
parentcc85bda3340ba5aedea82050ce458fc145f8e064 (diff)
Modify trace information
Diffstat (limited to 'service/src')
-rw-r--r--service/src/node_classifier.c24
-rw-r--r--service/src/node_etherfabric.c2
-rw-r--r--service/src/node_phydev.c6
-rw-r--r--service/src/node_tera.c2
-rw-r--r--service/src/node_vwire.c2
5 files changed, 29 insertions, 7 deletions
diff --git a/service/src/node_classifier.c b/service/src/node_classifier.c
index c1784ce..374dcae 100644
--- a/service/src/node_classifier.c
+++ b/service/src/node_classifier.c
@@ -362,11 +362,11 @@ int classifier_init(struct sc_main * sc)
static __rte_always_inline void gen_store_trace_info(struct rte_node * node, struct rte_mbuf * mbuf,
uint16_t next_node_index, struct classifier_stats * stats,
struct match_result_engine * result, uint8_t ignore_icmp,
- enum cls_excpt_reason excpt_reason)
+ enum cls_excpt_reason excpt_reason, uint8_t measurement_type)
{
/* Populate the next node infomation */
char str_record[MR_STRING_MAX];
- int len = snprintf(str_record, sizeof(str_record), "next node:%s", node->nodes[next_node_index]->name);
+ int len = snprintf(str_record, sizeof(str_record), "recv packet. next node:%s", node->nodes[next_node_index]->name);
if (unlikely(excpt_reason != CLS_EXCPT_REASON_MAX))
{
@@ -400,7 +400,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str
/* Emit the trace record */
struct dp_trace_record_meta meta = {
- .measurement_type = DP_TRACE_MEASUREMENT_TYPE_TRACE, .appsym = MR_TRACE_APPSYM, .module = node->name};
+ .measurement_type = measurement_type, .appsym = MR_TRACE_APPSYM, .module = node->name};
dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record);
}
@@ -515,11 +515,17 @@ static __rte_always_inline uint16_t classifier_node_process(struct rte_graph * g
stats.miss++;
}
+ if (unlikely(dp_trace_record_can_emit(pending_mbufs[pkt_idx], DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)))
+ {
+ gen_store_trace_info(node, pending_mbufs[pkt_idx], CLASSIFIER_NEXT_FORWARDER, &stats, &results[pkt_idx],
+ ignore_icmp_pkts[pkt_idx], excpt_reason, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY);
+ }
+
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(pending_mbufs[pkt_idx], DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{
gen_store_trace_info(node, pending_mbufs[pkt_idx], CLASSIFIER_NEXT_FORWARDER, &stats, &results[pkt_idx],
- ignore_icmp_pkts[pkt_idx], excpt_reason);
+ ignore_icmp_pkts[pkt_idx], excpt_reason, DP_TRACE_MEASUREMENT_TYPE_TRACE);
gen_store_trace_info_sid_list(node, pending_mbufs[pkt_idx]);
}
}
@@ -602,11 +608,17 @@ static __rte_always_inline uint16_t classifier_node_process(struct rte_graph * g
stats.miss++;
}
+ if (unlikely(dp_trace_record_can_emit(mbuf0, DP_TRACE_MEASUREMENT_TYPE_TELEMETRY)))
+ {
+ gen_store_trace_info(node, mbuf0, CLASSIFIER_NEXT_FORWARDER, &stats, &result, ignore_icmp_pkt, excpt_reason,
+ DP_TRACE_MEASUREMENT_TYPE_TELEMETRY);
+ }
+
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(mbuf0, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{
- gen_store_trace_info(node, mbuf0, CLASSIFIER_NEXT_FORWARDER, &stats, &result, ignore_icmp_pkt,
- excpt_reason);
+ gen_store_trace_info(node, mbuf0, CLASSIFIER_NEXT_FORWARDER, &stats, &result, ignore_icmp_pkt, excpt_reason,
+ DP_TRACE_MEASUREMENT_TYPE_TRACE);
gen_store_trace_info_sid_list(node, mbuf0);
}
}
diff --git a/service/src/node_etherfabric.c b/service/src/node_etherfabric.c
index 1174e6a..e0c32e3 100644
--- a/service/src/node_etherfabric.c
+++ b/service/src/node_etherfabric.c
@@ -618,6 +618,7 @@ static __rte_always_inline uint16_t ef_ingress_node_process(struct rte_graph * g
stats.to_classifier++;
node_enqueue:
+#if 0
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{
@@ -630,6 +631,7 @@ static __rte_always_inline uint16_t ef_ingress_node_process(struct rte_graph * g
{
gen_store_telemetry_info_adapter(mbuf);
}
+#endif
/* Judge the next index whether to change */
if (unlikely(batch_next_node_index != next_node_index))
diff --git a/service/src/node_phydev.c b/service/src/node_phydev.c
index b5a74a9..8314854 100644
--- a/service/src/node_phydev.c
+++ b/service/src/node_phydev.c
@@ -527,6 +527,7 @@ static __rte_always_inline uint16_t dpdk_dev_rx_node_process(struct rte_graph *
parser_results[i] = &mrb_meta->pkt_parser_result;
+#if 0
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{
@@ -538,12 +539,14 @@ static __rte_always_inline uint16_t dpdk_dev_rx_node_process(struct rte_graph *
{
gen_store_telemetry_info_rx(node, mbuf, dev_desc, qid);
}
+#endif
}
/* for test */
distributer_calculate_from_parser_results(sc->dist_object, (struct rte_mbuf **)node->objs, parser_results,
node->idx);
+#if 0
for (unsigned int i = 0; i < node->idx; i++)
{
struct rte_mbuf * mbuf = (struct rte_mbuf *)node->objs[i];
@@ -551,7 +554,8 @@ static __rte_always_inline uint16_t dpdk_dev_rx_node_process(struct rte_graph *
{
gen_store_trace_info_rte_mbuf(node, mbuf);
}
- }
+}
+#endif
/* move to the next node */
rte_node_next_stream_move(graph, node, 0);
diff --git a/service/src/node_tera.c b/service/src/node_tera.c
index a0e4a77..b5edaa9 100644
--- a/service/src/node_tera.c
+++ b/service/src/node_tera.c
@@ -459,6 +459,7 @@ static __rte_always_inline uint16_t tera_ingress_node_process(struct rte_graph *
stats.to_classifier++;
node_enqueue:
+#if 0
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(mbuf, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{
@@ -466,6 +467,7 @@ static __rte_always_inline uint16_t tera_ingress_node_process(struct rte_graph *
prev_adapter->mac_flipping, prepend_sid, drop_reason);
// gen_store_trace_info_sid_list(node, mbuf);
}
+#endif
/* Check if the next index needs to be changed */
if (unlikely(batch_next_node_index != next_node_index))
diff --git a/service/src/node_vwire.c b/service/src/node_vwire.c
index 01fb74d..4197085 100644
--- a/service/src/node_vwire.c
+++ b/service/src/node_vwire.c
@@ -200,6 +200,7 @@ static __rte_always_inline uint16_t vwire_ingress_node_process(struct rte_graph
stats.drop_pkts++;
}
+#if 0
/* Check if tracing is enabled for the current Mbuf */
if (unlikely(dp_trace_record_can_emit(mbuf0, DP_TRACE_MEASUREMENT_TYPE_TRACE)))
{
@@ -211,6 +212,7 @@ static __rte_always_inline uint16_t vwire_ingress_node_process(struct rte_graph
{
gen_store_telemetry_info_adapter(mbuf0);
}
+#endif
if (unlikely(next_index ^ next0))
{