summaryrefslogtreecommitdiff
path: root/service/src
diff options
context:
space:
mode:
Diffstat (limited to 'service/src')
-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
12 files changed, 48 insertions, 47 deletions
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];