From: Raslan Darawsheh <rasland@mellanox.com>
To: "jingjing.wu@intel.com" <jingjing.wu@intel.com>
Cc: Thomas Monjalon <thomas@monjalon.net>,
"dev@dpdk.org" <dev@dpdk.org>,
Shahaf Shuler <shahafs@mellanox.com>,
Raslan Darawsheh <rasland@mellanox.com>,
"Xueming(Steven) Li" <xuemingl@mellanox.com>,
Ori Kam <orika@mellanox.com>,
"jerin.jacob@caviumnetworks.com" <jerin.jacob@caviumnetworks.com>,
"david.marchand@6wind.com" <david.marchand@6wind.com>,
"bernard.iremonger@intel.com" <bernard.iremonger@intel.com>
Subject: [dpdk-dev] [PATCH v4 2/3] app/testpmd: add packet dump callback functions
Date: Sun, 7 Oct 2018 07:38:09 +0000 [thread overview]
Message-ID: <1538897848-1693-2-git-send-email-rasland@mellanox.com> (raw)
In-Reply-To: <1538897848-1693-1-git-send-email-rasland@mellanox.com>
add new rx/tx callback functions to be used for dumping the packets.
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
---
app/test-pmd/config.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++
app/test-pmd/testpmd.h | 15 +++++++++++
app/test-pmd/util.c | 17 +++++++++++++
3 files changed, 99 insertions(+)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index a0f9349..fb45fea 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -2896,6 +2896,73 @@ set_pkt_forwarding_mode(const char *fwd_mode_name)
}
void
+add_rx_dump_callbacks(portid_t portid)
+{
+ struct rte_eth_dev_info dev_info;
+ uint16_t queue;
+
+ if (port_id_is_invalid(portid, ENABLED_WARN))
+ return;
+
+ rte_eth_dev_info_get(portid, &dev_info);
+ for (queue = 0; queue < dev_info.nb_rx_queues; queue++)
+ if (!ports[portid].rx_dump_cb[queue])
+ ports[portid].rx_dump_cb[queue] =
+ rte_eth_add_rx_callback(portid, queue,
+ dump_rx_pkts, NULL);
+}
+
+void
+add_tx_dump_callbacks(portid_t portid)
+{
+ struct rte_eth_dev_info dev_info;
+ uint16_t queue;
+
+ if (port_id_is_invalid(portid, ENABLED_WARN))
+ return;
+ rte_eth_dev_info_get(portid, &dev_info);
+ for (queue = 0; queue < dev_info.nb_tx_queues; queue++)
+ if (!ports[portid].tx_dump_cb[queue])
+ ports[portid].tx_dump_cb[queue] =
+ rte_eth_add_tx_callback(portid, queue,
+ dump_tx_pkts, NULL);
+}
+
+void
+remove_rx_dump_callbacks(portid_t portid)
+{
+ struct rte_eth_dev_info dev_info;
+ uint16_t queue;
+
+ if (port_id_is_invalid(portid, ENABLED_WARN))
+ return;
+ rte_eth_dev_info_get(portid, &dev_info);
+ for (queue = 0; queue < dev_info.nb_rx_queues; queue++)
+ if (ports[portid].rx_dump_cb[queue]) {
+ rte_eth_remove_rx_callback(portid, queue,
+ ports[portid].rx_dump_cb[queue]);
+ ports[portid].rx_dump_cb[queue] = NULL;
+ }
+}
+
+void
+remove_tx_dump_callbacks(portid_t portid)
+{
+ struct rte_eth_dev_info dev_info;
+ uint16_t queue;
+
+ if (port_id_is_invalid(portid, ENABLED_WARN))
+ return;
+ rte_eth_dev_info_get(portid, &dev_info);
+ for (queue = 0; queue < dev_info.nb_tx_queues; queue++)
+ if (ports[portid].tx_dump_cb[queue]) {
+ rte_eth_remove_tx_callback(portid, queue,
+ ports[portid].tx_dump_cb[queue]);
+ ports[portid].tx_dump_cb[queue] = NULL;
+ }
+}
+
+void
set_verbose_level(uint16_t vb_level)
{
printf("Change verbose level from %u to %u\n",
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index a1f6614..c0d7656 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -180,6 +180,8 @@ struct rte_port {
uint32_t mc_addr_nb; /**< nb. of addr. in mc_addr_pool */
uint8_t slave_flag; /**< bonding slave port */
struct port_flow *flow_list; /**< Associated flows. */
+ const struct rte_eth_rxtx_callback *rx_dump_cb[MAX_QUEUE_ID+1];
+ const struct rte_eth_rxtx_callback *tx_dump_cb[MAX_QUEUE_ID+1];
#ifdef SOFTNIC
struct softnic_port softport; /**< softnic params */
#endif
@@ -743,6 +745,19 @@ int check_nb_rxq(queueid_t rxq);
queueid_t get_allowed_max_nb_txq(portid_t *pid);
int check_nb_txq(queueid_t txq);
+
+uint16_t dump_rx_pkts(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],
+ uint16_t nb_pkts, __rte_unused uint16_t max_pkts,
+ __rte_unused void *user_param);
+
+uint16_t dump_tx_pkts(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],
+ uint16_t nb_pkts, __rte_unused void *user_param);
+
+void add_rx_dump_callbacks(portid_t portid);
+void remove_rx_dump_callbacks(portid_t portid);
+void add_tx_dump_callbacks(portid_t portid);
+void remove_tx_dump_callbacks(portid_t portid);
+
/*
* Work-around of a compilation error with ICC on invocations of the
* rte_be_to_cpu_16() function.
diff --git a/app/test-pmd/util.c b/app/test-pmd/util.c
index e56b712..6fa2284 100644
--- a/app/test-pmd/util.c
+++ b/app/test-pmd/util.c
@@ -148,3 +148,20 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],
printf(" ol_flags: %s\n", buf);
}
}
+
+uint16_t
+dump_rx_pkts(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],
+ uint16_t nb_pkts, __rte_unused uint16_t max_pkts,
+ __rte_unused void *user_param)
+{
+ dump_pkt_burst(port_id, queue, pkts, nb_pkts, 1);
+ return nb_pkts;
+}
+
+uint16_t
+dump_tx_pkts(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],
+ uint16_t nb_pkts, __rte_unused void *user_param)
+{
+ dump_pkt_burst(port_id, queue, pkts, nb_pkts, 0);
+ return nb_pkts;
+}
--
2.7.4
next prev parent reply other threads:[~2018-10-07 7:38 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-12 8:06 [dpdk-dev] [PATCH 1/2] app/testpmd: add a generic way for dumping packets Raslan Darawsheh
2018-09-12 8:06 ` [dpdk-dev] [PATCH 2/2] app/testpmd: use the generic function to dump packets Raslan Darawsheh
2018-09-13 16:43 ` David Marchand
2018-09-14 6:35 ` Jerin Jacob
2018-09-17 14:18 ` Raslan Darawsheh
2018-09-24 12:49 ` [dpdk-dev] [PATCH v2 1/3] app/testpmd: move dumping packets to a separate function Raslan Darawsheh
2018-09-24 12:49 ` [dpdk-dev] [PATCH v2 2/3] app/testpmd: add packet dump callback functions Raslan Darawsheh
2018-09-24 12:49 ` [dpdk-dev] [PATCH v2 3/3] app/testpmd: set packet dump based on verbosity level Raslan Darawsheh
2018-10-02 13:35 ` [dpdk-dev] [PATCH v2 1/3] app/testpmd: move dumping packets to a separate function Iremonger, Bernard
2018-10-03 15:11 ` Raslan Darawsheh
2018-10-03 15:16 ` [dpdk-dev] [PATCH v3 " Raslan Darawsheh
2018-10-03 15:16 ` [dpdk-dev] [PATCH v3 2/3] app/testpmd: add packet dump callback functions Raslan Darawsheh
2018-10-03 15:16 ` [dpdk-dev] [PATCH v3 3/3] app/testpmd: set packet dump based on verbosity level Raslan Darawsheh
2018-10-04 14:43 ` [dpdk-dev] [PATCH v3 1/3] app/testpmd: move dumping packets to a separate function Iremonger, Bernard
2018-10-07 7:38 ` Raslan Darawsheh
2018-10-07 7:38 ` [dpdk-dev] [PATCH v4 " Raslan Darawsheh
2018-10-07 7:38 ` Raslan Darawsheh [this message]
2018-10-08 10:03 ` [dpdk-dev] [PATCH v4 2/3] app/testpmd: add packet dump callback functions Iremonger, Bernard
2018-10-11 14:58 ` Ferruh Yigit
2018-10-16 10:11 ` Raslan Darawsheh
2018-10-07 7:38 ` [dpdk-dev] [PATCH v4 3/3] app/testpmd: set packet dump based on verbosity level Raslan Darawsheh
2018-10-08 10:04 ` Iremonger, Bernard
2018-10-11 15:00 ` Ferruh Yigit
2018-10-11 15:24 ` Iremonger, Bernard
2018-10-11 15:52 ` Ferruh Yigit
2018-10-11 16:39 ` Iremonger, Bernard
2018-10-17 12:34 ` Ferruh Yigit
2018-10-08 10:01 ` [dpdk-dev] [PATCH v4 1/3] app/testpmd: move dumping packets to a separate function Iremonger, Bernard
2018-10-11 14:56 ` Ferruh Yigit
2018-10-16 10:10 ` Raslan Darawsheh
2018-10-16 13:11 ` Ferruh Yigit
2018-10-17 7:27 ` [dpdk-dev] [PATCH v5 " Raslan Darawsheh
2018-10-17 7:27 ` [dpdk-dev] [PATCH v5 2/3] app/testpmd: add packet dump callback functions Raslan Darawsheh
2018-10-17 7:27 ` [dpdk-dev] [PATCH v5 3/3] app/testpmd: set packet dump based on verbosity level Raslan Darawsheh
2018-10-17 12:27 ` [dpdk-dev] [PATCH v5 1/3] app/testpmd: move dumping packets to a separate function Ferruh Yigit
2018-10-17 12:59 ` Iremonger, Bernard
2018-10-17 15:22 ` Raslan Darawsheh
2018-10-17 15:22 ` [dpdk-dev] [PATCH v6 " Raslan Darawsheh
2018-10-17 15:22 ` [dpdk-dev] [PATCH v6 2/3] app/testpmd: add packet dump callback functions Raslan Darawsheh
2018-10-17 15:22 ` [dpdk-dev] [PATCH v6 3/3] app/testpmd: set packet dump based on verbosity level Raslan Darawsheh
2018-10-17 16:24 ` Iremonger, Bernard
2018-10-17 16:33 ` Ferruh Yigit
2018-10-18 8:19 ` Raslan Darawsheh
2018-10-18 8:33 ` Ferruh Yigit
2018-10-18 8:47 ` Raslan Darawsheh
2018-10-17 16:22 ` [dpdk-dev] [PATCH v6 1/3] app/testpmd: move dumping packets to a separate function Ferruh Yigit
2018-09-12 15:00 ` [dpdk-dev] [PATCH 1/2] app/testpmd: add a generic way for dumping packets Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1538897848-1693-2-git-send-email-rasland@mellanox.com \
--to=rasland@mellanox.com \
--cc=bernard.iremonger@intel.com \
--cc=david.marchand@6wind.com \
--cc=dev@dpdk.org \
--cc=jerin.jacob@caviumnetworks.com \
--cc=jingjing.wu@intel.com \
--cc=orika@mellanox.com \
--cc=shahafs@mellanox.com \
--cc=thomas@monjalon.net \
--cc=xuemingl@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).