This patch adds new fields to 'struct enetc_bdr' to save the configuratin of Rx and Tx deferred start.
Signed-off-by: Jie Hai <haij...@huawei.com> --- drivers/net/enetc/enetc.h | 2 ++ drivers/net/enetc/enetc_ethdev.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/drivers/net/enetc/enetc.h b/drivers/net/enetc/enetc.h index 7163633bcedf..170854cd1649 100644 --- a/drivers/net/enetc/enetc.h +++ b/drivers/net/enetc/enetc.h @@ -74,6 +74,8 @@ struct enetc_bdr { }; struct rte_mempool *mb_pool; /* mbuf pool to populate RX ring. */ struct rte_eth_dev *ndev; + bool rx_deferred_start; + bool tx_deferred_start; }; /* diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c index 1b4337bc488c..444792b7f77e 100644 --- a/drivers/net/enetc/enetc_ethdev.c +++ b/drivers/net/enetc/enetc_ethdev.c @@ -326,9 +326,11 @@ enetc_tx_queue_setup(struct rte_eth_dev *dev, ENETC_TBMR, ENETC_TBMR_EN); dev->data->tx_queue_state[tx_ring->index] = RTE_ETH_QUEUE_STATE_STARTED; + tx_ring->tx_deferred_start = false; } else { dev->data->tx_queue_state[tx_ring->index] = RTE_ETH_QUEUE_STATE_STOPPED; + tx_ring->tx_deferred_start = true; } return 0; @@ -473,9 +475,11 @@ enetc_rx_queue_setup(struct rte_eth_dev *dev, ENETC_RBMR_EN); dev->data->rx_queue_state[rx_ring->index] = RTE_ETH_QUEUE_STATE_STARTED; + rx_ring->rx_deferred_start = false; } else { dev->data->rx_queue_state[rx_ring->index] = RTE_ETH_QUEUE_STATE_STOPPED; + rx_ring->rx_deferred_start = true; } rx_ring->crc_len = (uint8_t)((rx_offloads & RTE_ETH_RX_OFFLOAD_KEEP_CRC) ? -- 2.30.0