All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	Thomas Monjalon <thomas@monjalon.net>
Cc: Ferruh Yigit <ferruh.yigit@intel.com>, dev@dpdk.org
Subject: [dpdk-dev] [RFC v2 7/8] test/virtual_pmd: support queue start/stop
Date: Fri, 16 Jul 2021 15:27:59 +0100	[thread overview]
Message-ID: <20210716142800.3853651-7-ferruh.yigit@intel.com> (raw)
In-Reply-To: <20210716142800.3853651-1-ferruh.yigit@intel.com>

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 app/test/virtual_pmd.c | 52 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c
index 27c8501b96a7..4b8318cf39dd 100644
--- a/app/test/virtual_pmd.c
+++ b/app/test/virtual_pmd.c
@@ -35,11 +35,35 @@ struct virtual_ethdev_queue {
 	struct rte_eth_rxconf rx_conf;
 };
 
+static int
+virtual_ethdev_rx_queue_start(struct rte_eth_dev *eth_dev, uint16_t queue_id)
+{
+	eth_dev->data->rx_queue_state[queue_id] = RTE_ETH_QUEUE_STATE_STARTED;
+
+	return 0;
+}
+
+static int
+virtual_ethdev_tx_queue_start(struct rte_eth_dev *eth_dev, uint16_t queue_id)
+{
+	eth_dev->data->tx_queue_state[queue_id] = RTE_ETH_QUEUE_STATE_STARTED;
+
+	return 0;
+}
+
 static int
 virtual_ethdev_start_success(struct rte_eth_dev *eth_dev)
 {
+	int i;
+
 	eth_dev->data->dev_started = 1;
 
+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		virtual_ethdev_rx_queue_start(eth_dev, i);
+
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		virtual_ethdev_tx_queue_start(eth_dev, i);
+
 	return 0;
 }
 
@@ -50,10 +74,34 @@ virtual_ethdev_start_fail(struct rte_eth_dev *eth_dev)
 
 	return -1;
 }
+
+static int
+virtual_ethdev_rx_queue_stop(struct rte_eth_dev *eth_dev, uint16_t queue_id)
+{
+	eth_dev->data->rx_queue_state[queue_id] = RTE_ETH_QUEUE_STATE_STOPPED;
+
+	return 0;
+}
+
+static int
+virtual_ethdev_tx_queue_stop(struct rte_eth_dev *eth_dev, uint16_t queue_id)
+{
+	eth_dev->data->tx_queue_state[queue_id] = RTE_ETH_QUEUE_STATE_STOPPED;
+
+	return 0;
+}
+
 static int  virtual_ethdev_stop(struct rte_eth_dev *eth_dev)
 {
 	void *pkt = NULL;
 	struct virtual_ethdev_private *prv = eth_dev->data->dev_private;
+	int i;
+
+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		virtual_ethdev_rx_queue_stop(eth_dev, i);
+
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		virtual_ethdev_tx_queue_stop(eth_dev, i);
 
 	eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;
 	eth_dev->data->dev_started = 0;
@@ -271,6 +319,10 @@ static const struct eth_dev_ops virtual_ethdev_default_dev_ops = {
 	.dev_stop = virtual_ethdev_stop,
 	.dev_close = virtual_ethdev_close,
 	.dev_infos_get = virtual_ethdev_info_get,
+	.rx_queue_start = virtual_ethdev_rx_queue_start,
+	.tx_queue_start = virtual_ethdev_tx_queue_start,
+	.rx_queue_stop = virtual_ethdev_rx_queue_stop,
+	.tx_queue_stop = virtual_ethdev_tx_queue_stop,
 	.rx_queue_setup = virtual_ethdev_rx_queue_setup_success,
 	.tx_queue_setup = virtual_ethdev_tx_queue_setup_success,
 	.rxq_info_get = virtual_ethdev_rx_info_get,
-- 
2.31.1


  parent reply	other threads:[~2021-07-16 14:28 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-17  8:14 [dpdk-dev] [RFC 1/4] test/virtual_pmd: enable getting device operations Ferruh Yigit
2021-06-17  8:14 ` [dpdk-dev] [RFC 2/4] test/virtual_pmd: clean rings on close Ferruh Yigit
2021-06-17  8:14 ` [dpdk-dev] [RFC 3/4] test/virtual_pmd: enable updating device flags Ferruh Yigit
2021-06-17  8:14 ` [dpdk-dev] [RFC 4/4] test: support ethdev Ferruh Yigit
2021-07-16 14:27 ` [dpdk-dev] [RFC v2 1/8] test/virtual_pmd: clean rings on close Ferruh Yigit
2021-07-16 14:27   ` [dpdk-dev] [RFC v2 2/8] test/virtual_pmd: enable getting device operations Ferruh Yigit
2023-08-22 21:10     ` Stephen Hemminger
2021-07-16 14:27   ` [dpdk-dev] [RFC v2 3/8] test/virtual_pmd: enable updating device flags Ferruh Yigit
2021-07-16 14:27   ` [dpdk-dev] [RFC v2 4/8] test/virtual_pmd: enable getting device data Ferruh Yigit
2021-07-16 14:27   ` [dpdk-dev] [RFC v2 5/8] test/virtual_pmd: support get queue info device ops Ferruh Yigit
2021-07-16 14:27   ` [dpdk-dev] [RFC v2 6/8] test/virtual_pmd: provide descriptor limit info Ferruh Yigit
2021-07-16 14:27   ` Ferruh Yigit [this message]
2023-08-22 21:11     ` [dpdk-dev] [RFC v2 7/8] test/virtual_pmd: support queue start/stop Stephen Hemminger
2021-07-16 14:28   ` [dpdk-dev] [RFC v2 8/8] test: support ethdev Ferruh Yigit
2023-08-22 21:14     ` Stephen Hemminger
2023-08-22 21:15   ` [dpdk-dev] [RFC v2 1/8] test/virtual_pmd: clean rings on close Stephen Hemminger

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=20210716142800.3853651-7-ferruh.yigit@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=thomas@monjalon.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.