summaryrefslogtreecommitdiff
path: root/tools/tcpdump
diff options
context:
space:
mode:
authorsongyanchao <[email protected]>2023-10-25 08:39:13 +0000
committersongyanchao <[email protected]>2023-10-25 08:39:13 +0000
commite04111652bc3397f2eaccdc5c37e1c15e986d529 (patch)
tree9b3e868395b9148f97a851f3525715899d5d9ad9 /tools/tcpdump
parent4e4613c9b3a2b643f0af6f0c37870d29b228e839 (diff)
🎈 perf(DPISDN-23): Optimize Storage of SID Data using Circular Queue and Add Associated Functions
Optimize Storage of SID Data using Circular Queue and Add Associated Functions
Diffstat (limited to 'tools/tcpdump')
-rw-r--r--tools/tcpdump/pdump.c42
1 files changed, 22 insertions, 20 deletions
diff --git a/tools/tcpdump/pdump.c b/tools/tcpdump/pdump.c
index 6ddda6c..1ff5de4 100644
--- a/tools/tcpdump/pdump.c
+++ b/tools/tcpdump/pdump.c
@@ -552,35 +552,37 @@ int mr_pcapng_set_opt(struct rte_mbuf * mbuf, uint16_t port_id, uint32_t flags)
char str_rx_tx[METADATA_MAX_SIZE];
char str_sid[METADATA_MAX_SIZE];
char str_dir[METADATA_MAX_SIZE];
+ uint32_t str_maxlen = METADATA_MAX_SIZE - 1;
struct mrb_metadata * mrb_metadata = mrbuf_cz_data(mbuf, MR_NODE_CTRLZONE_ID);
int len = 0;
if (flags == RTE_PDUMP_FLAG_RX)
- len = snprintf(str_rx_tx, METADATA_MAX_SIZE, "rx");
+ len = snprintf(str_rx_tx, str_maxlen, "rx");
else
- len = snprintf(str_rx_tx, METADATA_MAX_SIZE, "tx");
-
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", port_ingress:%u", mrb_metadata->port_ingress);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", port_egress:%u", mrb_metadata->port_egress);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", is_nf_create:%u", mrb_metadata->packet_create_from_nf);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", is_ctrlbuf:%u", mrb_metadata->is_ctrlbuf);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", payload_offset:%u", mrb_metadata->payload_offset);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", user0:%u", mrb_metadata->user_0);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", session_id:%lu", mrb_metadata->session_id);
- len += snprintf(str_rx_tx + len, METADATA_MAX_SIZE - len, ", hash_usr:%u", mbuf->hash.usr);
-
- len = snprintf(str_sid, METADATA_MAX_SIZE - len, "start_sid:%u", mrb_metadata->start_sid);
- len += snprintf(str_sid + len, METADATA_MAX_SIZE - len, ", nr_sid:%u", mrb_metadata->nr_sid);
- len += snprintf(str_sid + len, METADATA_MAX_SIZE - len, ", cur_sid:%u", mrb_metadata->cur_sid);
- len += snprintf(str_sid + len, METADATA_MAX_SIZE - len, ", sids:");
+ len = snprintf(str_rx_tx, str_maxlen, "tx");
+
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", port_ingress:%u", mrb_metadata->port_ingress);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", port_egress:%u", mrb_metadata->port_egress);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", is_nf_create:%u", mrb_metadata->packet_create_from_nf);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", is_ctrlbuf:%u", mrb_metadata->is_ctrlbuf);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", payload_offset:%u", mrb_metadata->payload_offset);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", user0:%u", mrb_metadata->user_0);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", session_id:%lu", mrb_metadata->session_id);
+ len += snprintf(str_rx_tx + len, str_maxlen - len, ", hash_usr:%u", mbuf->hash.usr);
+
+ len = snprintf(str_sid, str_maxlen - len, "sid_head:%u", mrb_metadata->sid_head);
+ len += snprintf(str_sid + len, str_maxlen - len, ", sid_tail:%u", mrb_metadata->sid_tail);
+ len += snprintf(str_sid + len, str_maxlen - len, ", sid_capacity:%u", mrb_metadata->sid_capacity);
+ len += snprintf(str_sid + len, str_maxlen - len, ", cur_sid:%u", mrb_metadata->cur_sid);
+ len += snprintf(str_sid + len, str_maxlen - len, ", sids:");
for (int i = 0; i < RTE_DIM(mrb_metadata->sids); i++)
{
- len += snprintf(str_sid + len, METADATA_MAX_SIZE - len, "[%u],", mrb_metadata->sids[i]);
+ len += snprintf(str_sid + len, str_maxlen - len, "[%u],", mrb_metadata->sids[i]);
}
- len = snprintf(str_dir, METADATA_MAX_SIZE, "dir:%u", mrb_metadata->dir);
- len += snprintf(str_dir + len, METADATA_MAX_SIZE - len, ", ef_link_id:%u", mrb_metadata->link_id);
- len += snprintf(str_dir + len, METADATA_MAX_SIZE - len, ", ef_peer_id:%u", mrb_metadata->peer_index);
+ len = snprintf(str_dir, str_maxlen, "dir:%u", mrb_metadata->dir);
+ len += snprintf(str_dir + len, str_maxlen - len, ", ef_link_id:%u", mrb_metadata->link_id);
+ len += snprintf(str_dir + len, str_maxlen - len, ", ef_peer_id:%u", mrb_metadata->peer_index);
uint16_t optlen = pcapng_optlen(strlen(str_rx_tx));
optlen += pcapng_optlen(strlen(str_sid));