diff options
| author | songyanchao <[email protected]> | 2023-10-25 08:39:13 +0000 |
|---|---|---|
| committer | songyanchao <[email protected]> | 2023-10-25 08:39:13 +0000 |
| commit | e04111652bc3397f2eaccdc5c37e1c15e986d529 (patch) | |
| tree | 9b3e868395b9148f97a851f3525715899d5d9ad9 /tools/tcpdump | |
| parent | 4e4613c9b3a2b643f0af6f0c37870d29b228e839 (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.c | 42 |
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)); |
