summaryrefslogtreecommitdiff
path: root/service/include
diff options
context:
space:
mode:
authorsongyanchao <[email protected]>2024-03-12 14:56:47 +0800
committersongyanchao <[email protected]>2024-03-12 14:58:52 +0800
commit616588a2e35e4fac7fc0fd26fb92af386ba9c5fa (patch)
tree4658be2c939b797cb59ee98a2eaa1e1e8d5e066c /service/include
parent4a21f4430a5b6b500591e2265c07e49b4663e05b (diff)
🎈 perf(TSG-19602): Enhance node trace information for 'classifier'.
Enhance node trace information for 'classifier'.
Diffstat (limited to 'service/include')
-rw-r--r--service/include/sc_classifier_rule_parser.h1
-rw-r--r--service/include/sc_trace.h22
2 files changed, 18 insertions, 5 deletions
diff --git a/service/include/sc_classifier_rule_parser.h b/service/include/sc_classifier_rule_parser.h
index 8aa4d1b..2e8fe9f 100644
--- a/service/include/sc_classifier_rule_parser.h
+++ b/service/include/sc_classifier_rule_parser.h
@@ -32,6 +32,7 @@ struct adapter_info
struct action
{
enum action_type type;
+ uint16_t rule_index;
union {
uint16_t sid;
uint16_t data;
diff --git a/service/include/sc_trace.h b/service/include/sc_trace.h
index 80dfc37..89ad87e 100644
--- a/service/include/sc_trace.h
+++ b/service/include/sc_trace.h
@@ -1,4 +1,5 @@
#pragma once
+#include <rte_branch_prediction.h>
#include <rte_graph.h>
#include <rte_graph_worker.h>
@@ -24,12 +25,14 @@ static inline void gen_store_trace_info_pkt_parser(struct rte_node * node, struc
/* Populate the pkt parser information */
char str_record[MR_STRING_MAX];
uint8_t nr_layers = pkt_parser_result->nr_layers;
- int len = snprintf(str_record, sizeof(str_record), "pkt parser:%u layers, layer_type_ids:[", nr_layers);
+ int len = snprintf(str_record, sizeof(str_record), "pkt parser:%u layers, [", nr_layers);
for (unsigned int i = 0; i < nr_layers; i++)
{
struct pkt_layer_result * layer_result = &pkt_parser_result->layers[i];
- len += snprintf(str_record + len, sizeof(str_record) - len, "%u,", layer_result->type_id);
+ len += snprintf(str_record + len, sizeof(str_record) - len, "%u", layer_result->type_id);
+ if (i < nr_layers - 1)
+ len += snprintf(str_record + len, sizeof(str_record) - len, ",");
}
len += snprintf(str_record + len, sizeof(str_record) - len, "]");
@@ -71,11 +74,13 @@ 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_sids:%u, sid list:[", nr_sids);
+ int len = snprintf(str_record, sizeof(str_record), "nr:%u, sids:[", nr_sids);
for (int i = 0; i < nr_sids; i++)
{
- len += snprintf(str_record + len, sizeof(str_record) - len, "%u,", sids[i]);
+ len += snprintf(str_record + len, sizeof(str_record) - len, "%u", sids[i]);
+ if (i < nr_sids -1)
+ len += snprintf(str_record + len, sizeof(str_record) - len, ",");
}
len += snprintf(str_record + len, sizeof(str_record) - len, "]");
@@ -104,6 +109,13 @@ static inline void gen_store_trace_info_rx(struct rte_node * node, struct rte_mb
/* Populate the hash information */
len += snprintf(str_record + len, sizeof(str_record) - len, ", hash:%u", mbuf->hash.usr);
+ /* Populate the nf create infomation */
+ struct mrb_metadata * mrb_meta = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID);
+ if (unlikely(mrb_meta->packet_create_from_nf))
+ {
+ len += snprintf(str_record + len, sizeof(str_record) - len, ", nf cr:%u", mrb_meta->packet_create_from_nf);
+ }
+
/* Emit the trace record */
dp_trace_record_emit_str(sc_main_get()->trace, mbuf, &meta, str_record);
}
@@ -117,7 +129,7 @@ static inline void gen_store_trace_info_tx(struct rte_node * node, struct rte_mb
/* Populate the port information */
char str_record[MR_STRING_MAX];
- int len = snprintf(str_record, sizeof(str_record), "tx_port:%u,%s", dev_desc->port_id, dev_desc->symbol);
+ int len = snprintf(str_record, sizeof(str_record), "tx:%u,%s", dev_desc->port_id, dev_desc->symbol);
/* Populate the core id information */
len += snprintf(str_record + len, sizeof(str_record) - len, ", core:%u", rte_lcore_id());