diff options
| author | 童宗振 <[email protected]> | 2024-05-10 11:53:21 +0000 |
|---|---|---|
| committer | 童宗振 <[email protected]> | 2024-05-10 11:53:21 +0000 |
| commit | 884090756b137be8bfbd7b301527c9402eb3d1a4 (patch) | |
| tree | 7ea5f4b38a32d947833454fecbee0403e0f35732 /service/src | |
| parent | cc85bda3340ba5aedea82050ce458fc145f8e064 (diff) | |
Modify trace information
Diffstat (limited to 'service/src')
| -rw-r--r-- | service/src/node_classifier.c | 24 | ||||
| -rw-r--r-- | service/src/node_etherfabric.c | 2 | ||||
| -rw-r--r-- | service/src/node_phydev.c | 6 | ||||
| -rw-r--r-- | service/src/node_tera.c | 2 | ||||
| -rw-r--r-- | service/src/node_vwire.c | 2 |
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)) { |
