diff options
| author | songyanchao <[email protected]> | 2024-03-15 11:53:30 +0800 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2024-03-15 11:57:27 +0800 |
| commit | c15e2714c9d66849bfdea58e280d2e69e464892a (patch) | |
| tree | 332cf74734e2f1e8c52c497c581428e257db3ac7 | |
| parent | 70db25f621a9a9964278884d31b3d6999fbaf4a3 (diff) | |
🎈 perf(TSG-19602): Simplify trace logging for nodes.v4.6.80-20240315rel-4.6
Simplify trace logging for nodes.
| -rw-r--r-- | app/src/rawio.c | 6 | ||||
| -rw-r--r-- | service/include/sc_trace.h | 38 | ||||
| -rw-r--r-- | service/src/node_bfd.c | 2 | ||||
| -rw-r--r-- | service/src/node_bridge.c | 4 | ||||
| -rw-r--r-- | service/src/node_classifier.c | 4 | ||||
| -rw-r--r-- | service/src/node_eth_egress.c | 4 | ||||
| -rw-r--r-- | service/src/node_eth_ingress.c | 9 | ||||
| -rw-r--r-- | service/src/node_etherfabric.c | 13 | ||||
| -rw-r--r-- | service/src/node_forwarder.c | 29 | ||||
| -rw-r--r-- | service/src/node_health_check.c | 4 | ||||
| -rw-r--r-- | service/src/node_lb.c | 2 | ||||
| -rw-r--r-- | service/src/node_shmdev.c | 2 | ||||
| -rw-r--r-- | service/src/node_tera.c | 11 | ||||
| -rw-r--r-- | service/src/node_vwire.c | 11 |
14 files changed, 82 insertions, 57 deletions
diff --git a/app/src/rawio.c b/app/src/rawio.c index 2c3010d..2c81576 100644 --- a/app/src/rawio.c +++ b/app/src/rawio.c @@ -98,8 +98,8 @@ int marsio_recv_burst(struct mr_vdev * vdev, queue_id_t qid, marsio_buff_t * mbu mbufs[i] = rx_buffer->mbufs[rx_buffer->curser + i]; if (unlikely(marsio_dp_trace_record_can_emit(mbufs[i]))) { - marsio_dp_trace_record_emit_fmt(vdev->instance, mbufs[i], NULL, "packet rx, dev=%s, qid=%u", vdev->devsym, - qid); + marsio_dp_trace_record_emit_fmt(vdev->instance, mbufs[i], "marsio_recv", "packet rx, dev=%s, qid=%u", + vdev->devsym, qid); } } @@ -141,7 +141,7 @@ int marsio_send_buffer_flush(struct mr_vdev * vdev, queue_id_t sid) hash[i] = tx_buffer->mbufs[i]->hash.usr; if (marsio_dp_trace_record_can_emit(tx_buffer->mbufs[i])) { - marsio_dp_trace_record_emit_fmt(vdev->instance, tx_buffer->mbufs[i], NULL, + marsio_dp_trace_record_emit_fmt(vdev->instance, tx_buffer->mbufs[i], "marsio_send", "packet tx, dev=%s , qid=%u, hash=%u", vdev->devsym, sid, hash[i]); } #else diff --git a/service/include/sc_trace.h b/service/include/sc_trace.h index 1b39b28..084eae2 100644 --- a/service/include/sc_trace.h +++ b/service/include/sc_trace.h @@ -8,6 +8,8 @@ #include "sc_common.h" #include <mrb_define.h> +#define MR_TRACE_APPSYM "mrzcpd" + int mr_dp_trace_init(struct sc_main * sc); void dp_trace_config_update(struct sc_main * sc); void hook_rte_pktmbuf_free(struct rte_mbuf * m); @@ -16,7 +18,7 @@ void hook_rte_pktmbuf_free_bulk(struct rte_mbuf ** mbufs, unsigned int count); /* Generate and store the trace information for pkt parser */ static inline void gen_store_trace_info_pkt_parser(struct rte_node * node, struct rte_mbuf * mbuf) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym=MR_TRACE_APPSYM, .module=node->name}; struct mrb_metadata * mrb_meta = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID); struct pkt_parser_result * pkt_parser_result = &mrb_meta->pkt_parser_result; @@ -43,7 +45,7 @@ static inline void gen_store_trace_info_pkt_parser(struct rte_node * node, struc /* Generate and store the trace information for rte mbuf */ static inline void gen_store_trace_info_rte_mbuf(struct rte_node * node, struct rte_mbuf * mbuf) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym=MR_TRACE_APPSYM, .module=node->name}; /* Populate the rte mbuf information */ char str_record[MR_STRING_MAX]; @@ -63,7 +65,7 @@ static inline void gen_store_trace_info_rte_mbuf(struct rte_node * node, struct /* Generate and store the trace information for Sid list */ static inline void gen_store_trace_info_sid_list(struct rte_node * node, struct rte_mbuf * mbuf) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym=MR_TRACE_APPSYM, .module=node->name}; /* Populate the Sid list */ struct mrb_metadata * mrb_meta = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID); @@ -71,7 +73,7 @@ static inline void gen_store_trace_info_sid_list(struct rte_node * node, struct int nr_sids = sid_list_get(&mrb_meta->sid_list, sids, RTE_DIM(mrb_meta->sid_list.sids)); char str_record[MR_STRING_MAX]; - int len = snprintf(str_record, sizeof(str_record), "nr:%u, sids:[", nr_sids); + int len = snprintf(str_record, sizeof(str_record), "sids:[nr:%u, [", nr_sids); for (int i = 0; i < nr_sids; i++) { @@ -80,17 +82,39 @@ static inline void gen_store_trace_info_sid_list(struct rte_node * node, struct len += snprintf(str_record + len, sizeof(str_record) - len, ","); } - len += snprintf(str_record + len, sizeof(str_record) - len, "]"); + len += snprintf(str_record + len, sizeof(str_record) - len, "]]"); /* Emit the trace record */ dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } +/* Embed Sid information into input string parameters */ +static inline int embed_sid_info(struct rte_mbuf * mbuf, char * str_record, int maxlen) +{ + struct mrb_metadata * mrb_meta = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID); + uint16_t sids[RTE_DIM(mrb_meta->sid_list.sids)]; + int nr_sids = sid_list_get(&mrb_meta->sid_list, sids, RTE_DIM(mrb_meta->sid_list.sids)); + + int len = snprintf(str_record, maxlen, ", sids:[nr:%u, [", nr_sids); + + for (int i = 0; i < nr_sids; i++) + { + len += snprintf(str_record + len, maxlen - len, "%u", sids[i]); + if (i < nr_sids - 1) + len += snprintf(str_record + len, maxlen - len, ","); + } + + len += snprintf(str_record + len, maxlen - len, "]]"); + + return len; +} + + /* Generate and store the trace information for rx */ static inline void gen_store_trace_info_rx(struct rte_node * node, struct rte_mbuf * mbuf, struct mr_dev_desc * dev_desc, uint16_t queue_id) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym=MR_TRACE_APPSYM, .module=node->name}; /* Populate the next node information */ char str_record[MR_STRING_MAX]; @@ -120,7 +144,7 @@ static inline void gen_store_trace_info_rx(struct rte_node * node, struct rte_mb static inline void gen_store_trace_info_tx(struct rte_node * node, struct rte_mbuf * mbuf, struct mr_dev_desc * dev_desc, uint16_t queue_id) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym=MR_TRACE_APPSYM, .module=node->name}; /* Populate the port information */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_bfd.c b/service/src/node_bfd.c index 6d4bb64..07c32f2 100644 --- a/service/src/node_bfd.c +++ b/service/src/node_bfd.c @@ -151,7 +151,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str uint16_t next_node_index, int expect_result, uint16_t bfd_session_id, uint8_t bfd_state) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_bridge.c b/service/src/node_bridge.c index 69fef22..7086b5c 100644 --- a/service/src/node_bridge.c +++ b/service/src/node_bridge.c @@ -213,7 +213,7 @@ static __rte_always_inline void gen_store_trace_info_original(struct rte_node * uint16_t next_node_index, struct bridge_stats * stats, struct bridge_stats * stats_for_trace) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -254,7 +254,7 @@ static __rte_always_inline void gen_store_trace_info_original(struct rte_node * static __rte_always_inline void gen_store_trace_info_clone(struct rte_node * node, struct rte_mbuf * mbuf, uint16_t next_node_index) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_classifier.c b/service/src/node_classifier.c index dc7fa65..6e0f474 100644 --- a/service/src/node_classifier.c +++ b/service/src/node_classifier.c @@ -353,7 +353,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str struct classifier_stats * stats_for_trace, struct match_result_engine * result, uint8_t ignore_icmp) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -384,7 +384,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str for (uint8_t i = 0; i < result->nr_actions; i++) { struct action * action = &result->actions[i]; - len += snprintf(str_record + len, sizeof(str_record) - len, ", [idx:%u, prio:%u, prepend sid:%u]", + len += snprintf(str_record + len, sizeof(str_record) - len, ", [idx:%u, prio:%u, prep sid:%u]", action->rule_index, i, action->sid); } } diff --git a/service/src/node_eth_egress.c b/service/src/node_eth_egress.c index 18bb3df..ea38a48 100644 --- a/service/src/node_eth_egress.c +++ b/service/src/node_eth_egress.c @@ -80,7 +80,7 @@ int node_eth_egress_init(struct node_manager_main * node_mgr_main) static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * node, struct rte_mbuf * mbuf, uint16_t next_node_index) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -121,11 +121,13 @@ static __rte_always_inline uint16_t eth_egress_node_process(struct rte_graph * g assert(port_egress < RTE_DIM(eth_egress_main->tb_port_id_to_edge)); next_node_index = eth_egress_main->tb_port_id_to_edge[port_egress]; +#if 0 /* Check if tracing is enabled for the current Mbuf */ if (unlikely(dp_trace_record_can_emit(mbuf))) { gen_store_trace_info_egress(node, mbuf, next_node_index); } +#endif /* Judge the next index whether to change */ if (unlikely(batch_next_node_index != next_node_index)) diff --git a/service/src/node_eth_ingress.c b/service/src/node_eth_ingress.c index 9cb209f..f26898e 100644 --- a/service/src/node_eth_ingress.c +++ b/service/src/node_eth_ingress.c @@ -2,11 +2,11 @@ #include <rte_graph.h> #include <rte_graph_worker.h> -#include "dp_trace.h" #include <adapter_define.h> #include <port_adapter_mapping.h> #include <sc_node.h> #include <sc_node_common.h> +#include <sc_trace.h> #define MR_ETH_INGRESS_BFD_PORT 3784 @@ -387,7 +387,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n struct eth_ingress_stats * stats_for_trace, struct mr_dev_desc * dev_desc) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -478,7 +478,7 @@ static __rte_always_inline uint16_t eth_ingress_node_process(struct rte_graph * /* Single Packet Processing */ uint16_t last_port_ingress = UINT16_MAX; struct eth_ingress_stats stats = {}; - struct eth_ingress_stats stats_for_trace = {}; + // struct eth_ingress_stats stats_for_trace = {}; struct mr_dev_desc * dev_desc = NULL; struct devmgr_main * devmgr_main = sc_main_get()->devmgr_main; @@ -537,12 +537,13 @@ static __rte_always_inline uint16_t eth_ingress_node_process(struct rte_graph * } node_enqueue: +#if 0 /* Check if tracing is enabled for the current Mbuf */ if (unlikely(dp_trace_record_can_emit(mbuf))) { gen_store_trace_info_ingress(node, mbuf, next_node_index, &stats, &stats_for_trace, dev_desc); } - +#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_etherfabric.c b/service/src/node_etherfabric.c index 7a3f002..76e7043 100644 --- a/service/src/node_etherfabric.c +++ b/service/src/node_etherfabric.c @@ -451,7 +451,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n struct ef_ingress_stats * stats_for_trace, uint16_t prepend_sid) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -486,7 +486,10 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n len += snprintf(str_record + len, sizeof(str_record) - len, ", trf lk id:%u", mrb_meta->traffic_link_id); /* Populate the prepend sid */ - len += snprintf(str_record + len, sizeof(str_record) - len, ", prepend sid:%u", prepend_sid); + len += snprintf(str_record + len, sizeof(str_record) - len, ", prep sid:%u", prepend_sid); + + /* Populate the sids information */ + len += embed_sid_info(mbuf, str_record + len, sizeof(str_record) - len); } /* Emit the trace record */ @@ -588,8 +591,8 @@ static __rte_always_inline uint16_t ef_ingress_node_process(struct rte_graph * g if (unlikely(dp_trace_record_can_emit(mbuf))) { gen_store_trace_info_ingress(node, mbuf, next_node_index, &stats, &stats_for_trace, prepend_sid); - gen_store_trace_info_sid_list(node, mbuf); - // gen_store_trace_info_rte_mbuf(node, mbuf); + // gen_store_trace_info_sid_list(node, mbuf); + // gen_store_trace_info_rte_mbuf(node, mbuf); } /* Judge the next index whether to change */ @@ -706,7 +709,7 @@ static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * no uint16_t next_node_index, struct ef_egress_stats * stats, struct ef_egress_stats * stats_for_trace) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_forwarder.c b/service/src/node_forwarder.c index 444858b..da403b5 100644 --- a/service/src/node_forwarder.c +++ b/service/src/node_forwarder.c @@ -95,7 +95,7 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str uint16_t next_node_index, struct forwarder_stats * stats, struct forwarder_stats * stats_for_trace) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -105,9 +105,8 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str struct mrb_metadata * mrb_meta = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID); uint16_t cur_sid = mrb_meta->cur_sid; - switch (next_node_index) + if (unlikely(next_node_index == FORWARDER_PKT_DROP)) { - case FORWARDER_PKT_DROP: { if (stats_for_trace->drop_for_pop_sid_err != stats->drop_for_pop_sid_err) { len += snprintf(str_record + len, sizeof(str_record) - len, ", rsn:pop sid err"); @@ -119,24 +118,14 @@ static __rte_always_inline void gen_store_trace_info(struct rte_node * node, str stats_for_trace->drop_for_invalid_sid = stats->drop_for_invalid_sid; } } - break; - case FORWARDER_NEXT_LB: - len += snprintf(str_record + len, sizeof(str_record) - len, ", rsn:pop sid %u is lb", cur_sid); - break; - case FORWARDER_VWIRE_EGRESS: - len += snprintf(str_record + len, sizeof(str_record) - len, ", rsn:pop sid %u is vwire", cur_sid); - break; - case FORWARDER_EF_EGRESS: - len += snprintf(str_record + len, sizeof(str_record) - len, ", rsn:pop sid %u is ef", cur_sid); - break; - case FORWARDER_TERA_EGRESS: - len += snprintf(str_record + len, sizeof(str_record) - len, ", rsn:pop sid %u is tera", cur_sid); - break; - default: - len += snprintf(str_record + len, sizeof(str_record) - len, ", rsn:unknown"); - break; + else + { + len += snprintf(str_record + len, sizeof(str_record) - len, ", pop sid:%u", cur_sid); } + /* Populate the sids information */ + len += embed_sid_info(mbuf, str_record + len, sizeof(str_record) - len); + /* Emit the trace record */ dp_trace_record_emit_str(sc_main_get()->trace, mbuf, rte_lcore_id(), &meta, str_record); } @@ -215,7 +204,7 @@ static __rte_always_inline uint16_t forwarder_node_process(struct rte_graph * gr if (unlikely(dp_trace_record_can_emit(mbuf))) { gen_store_trace_info(node, mbuf, next_node_index, &stats, &stats_for_trace); - gen_store_trace_info_sid_list(node, mbuf); + // gen_store_trace_info_sid_list(node, mbuf); } /* Judge the next index whether to change */ diff --git a/service/src/node_health_check.c b/service/src/node_health_check.c index ca3adee..20fee8b 100644 --- a/service/src/node_health_check.c +++ b/service/src/node_health_check.c @@ -604,7 +604,7 @@ static __rte_always_inline void gen_store_trace_info_ask_node(struct rte_node * uint16_t next_node_index, struct health_check_session * session) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -719,7 +719,7 @@ static __rte_always_inline void gen_store_trace_info_answer_node( struct health_check_deal_answer_stats * stats, struct health_check_deal_answer_stats * stats_for_trace, struct health_check_session * session) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_lb.c b/service/src/node_lb.c index 995eb1d..bb39fbd 100644 --- a/service/src/node_lb.c +++ b/service/src/node_lb.c @@ -453,7 +453,7 @@ int lb_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 lb_group * lb_group) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_shmdev.c b/service/src/node_shmdev.c index cf462ff..61dda48 100644 --- a/service/src/node_shmdev.c +++ b/service/src/node_shmdev.c @@ -50,7 +50,7 @@ enum packet_direction static __rte_always_inline void gen_store_trace_info(struct rte_node * node, struct rte_mbuf * mbuf, struct vdev * shm_dev_desc, enum packet_direction direction) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; char str_record[MR_STRING_MAX]; int len = snprintf(str_record, sizeof(str_record), "port:%u,%s", shm_dev_desc->port_id, shm_dev_desc->symbol); diff --git a/service/src/node_tera.c b/service/src/node_tera.c index 643808b..b4fba43 100644 --- a/service/src/node_tera.c +++ b/service/src/node_tera.c @@ -316,7 +316,7 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n uint16_t vlan_id, uint16_t vlan_couple, uint8_t mac_flipping, uint16_t prepend_sid) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -353,7 +353,10 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n len += snprintf(str_record + len, sizeof(str_record) - len, ", mac flipping:%u", mac_flipping); /* Populate the prepend sid */ - len += snprintf(str_record + len, sizeof(str_record) - len, ", prepend sid:%u", prepend_sid); + len += snprintf(str_record + len, sizeof(str_record) - len, ", prep sid:%u", prepend_sid); + + /* Populate the sids information */ + len += embed_sid_info(mbuf, str_record + len, sizeof(str_record) - len); } /* Emit the trace record */ @@ -466,7 +469,7 @@ static __rte_always_inline uint16_t tera_ingress_node_process(struct rte_graph * { gen_store_trace_info_ingress(node, mbuf, next_node_index, &stats, &stats_for_trace, vlan_id, prev_vlan_couple, prev_adapter->mac_flipping, prepend_sid); - gen_store_trace_info_sid_list(node, mbuf); + // gen_store_trace_info_sid_list(node, mbuf); } /* Check if the next index needs to be changed */ @@ -518,7 +521,7 @@ RTE_NODE_REGISTER(tera_ingress_node_base); static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * node, struct rte_mbuf * mbuf, uint16_t next_node_index) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; diff --git a/service/src/node_vwire.c b/service/src/node_vwire.c index 2d4b49a..1c0942b 100644 --- a/service/src/node_vwire.c +++ b/service/src/node_vwire.c @@ -108,7 +108,7 @@ int vwire_id_check(uint32_t vwire_id) static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * node, struct rte_mbuf * mbuf, uint16_t next_node_index, uint16_t prepend_sid) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; @@ -129,7 +129,10 @@ static __rte_always_inline void gen_store_trace_info_ingress(struct rte_node * n len += snprintf(str_record + len, sizeof(str_record) - len, ", trf lk id:%u", mrb_meta->traffic_link_id); /* Populate the prepend sid */ - len += snprintf(str_record + len, sizeof(str_record) - len, ", prepend sid:%u", prepend_sid); + len += snprintf(str_record + len, sizeof(str_record) - len, ", prep sid:%u", prepend_sid); + + /* Populate the sids information */ + len += embed_sid_info(mbuf, str_record + len, sizeof(str_record) - len); } /* Emit the trace record */ @@ -203,7 +206,7 @@ static __rte_always_inline uint16_t vwire_ingress_node_process(struct rte_graph if (unlikely(dp_trace_record_can_emit(mbuf0))) { gen_store_trace_info_ingress(node, mbuf0, next0, prepend_sid); - gen_store_trace_info_sid_list(node, mbuf0); + // gen_store_trace_info_sid_list(node, mbuf0); } if (unlikely(next_index ^ next0)) @@ -247,7 +250,7 @@ static __rte_always_inline uint16_t vwire_ingress_node_process(struct rte_graph static __rte_always_inline void gen_store_trace_info_egress(struct rte_node * node, struct rte_mbuf * mbuf, uint16_t next_node_index) { - struct dp_trace_record_meta meta = {.module = node->name}; + struct dp_trace_record_meta meta = {.appsym = MR_TRACE_APPSYM, .module = node->name}; /* Populate the next node infomation */ char str_record[MR_STRING_MAX]; |
