[2/2] net/failsafe: support runtime Tx queues setup
Checks
Commit Message
From: Ian Dolzhansky <Ian.Dolzhansky@oktetlabs.ru>
Signed-off-by: Ian Dolzhansky <Ian.Dolzhansky@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
doc/guides/nics/features/failsafe.ini | 1 +
doc/guides/rel_notes/release_18_11.rst | 2 +-
drivers/net/failsafe/failsafe_ops.c | 9 ++++++---
3 files changed, 8 insertions(+), 4 deletions(-)
@@ -9,6 +9,7 @@ Link status event = Y
Rx interrupt = Y
Queue start/stop = Y
Runtime Rx queue setup = Y
+Runtime Tx queue setup = Y
MTU update = Y
Jumbo frame = Y
Promiscuous mode = Y
@@ -60,7 +60,7 @@ New Features
* Support for Rx and Tx queues start and stop.
* Support for Rx and Tx queues deferred start.
- * Support for runtime Rx queues setup.
+ * Support for runtime Rx and Tx queues setup.
* **Added ability to switch queue deferred start flag on testpmd app.**
@@ -89,7 +89,8 @@ static struct rte_eth_dev_info default_infos = {
ETH_RSS_UDP |
ETH_RSS_TCP,
.dev_capa =
- RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP,
+ RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
+ RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP,
};
static int
@@ -187,7 +188,7 @@ fs_set_queues_state_start(struct rte_eth_dev *dev)
}
for (i = 0; i < dev->data->nb_tx_queues; i++) {
txq = dev->data->tx_queues[i];
- if (!txq->info.conf.tx_deferred_start)
+ if (txq != NULL && !txq->info.conf.tx_deferred_start)
dev->data->tx_queue_state[i] =
RTE_ETH_QUEUE_STATE_STARTED;
}
@@ -246,7 +247,9 @@ fs_set_queues_state_stop(struct rte_eth_dev *dev)
dev->data->rx_queue_state[i] =
RTE_ETH_QUEUE_STATE_STOPPED;
for (i = 0; i < dev->data->nb_tx_queues; i++)
- dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+ if (dev->data->tx_queues[i] != NULL)
+ dev->data->tx_queue_state[i] =
+ RTE_ETH_QUEUE_STATE_STOPPED;
}
static void