summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/rawio.c6
-rw-r--r--service/include/sc_trace.h38
-rw-r--r--service/src/node_bfd.c2
-rw-r--r--service/src/node_bridge.c4
-rw-r--r--service/src/node_classifier.c4
-rw-r--r--service/src/node_eth_egress.c4
-rw-r--r--service/src/node_eth_ingress.c9
-rw-r--r--service/src/node_etherfabric.c13
-rw-r--r--service/src/node_forwarder.c29
-rw-r--r--service/src/node_health_check.c4
-rw-r--r--service/src/node_lb.c2
-rw-r--r--service/src/node_shmdev.c2
-rw-r--r--service/src/node_tera.c11
-rw-r--r--service/src/node_vwire.c11
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];