On 7/9/2018 9:21 PM, Gage Eads wrote: > Set the rx and tx queue state appropriately when the queues or device are > started or stopped.
Is there a specific reason to enable these dev_ops, if so can you please document in commit log? > > Signed-off-by: Gage Eads <gage.e...@intel.com> > --- > drivers/net/pcap/rte_eth_pcap.c | 42 > +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c > index 6bd4a7d79..21e466bcd 100644 > --- a/drivers/net/pcap/rte_eth_pcap.c > +++ b/drivers/net/pcap/rte_eth_pcap.c > @@ -430,6 +430,10 @@ eth_dev_start(struct rte_eth_dev *dev) > return -1; > rx->pcap = tx->pcap; > } > + > + dev->data->tx_queue_state[0] = RTE_ETH_QUEUE_STATE_STARTED; > + dev->data->rx_queue_state[0] = RTE_ETH_QUEUE_STATE_STARTED; pcap also supports multiple queue, instead of hardcoding the queue 0 it can be possible to iterate through dev->data->nb_rx_queues, dev->data->nb_tx_queues. And I think it is not good to set this in "internals->single_iface" condition, it is better to do these assignments just above "status_up" after all queues initialized. > + > goto status_up; > } > > @@ -490,6 +494,8 @@ eth_dev_stop(struct rte_eth_dev *dev) > pcap_close(tx->pcap); > tx->pcap = NULL; > rx->pcap = NULL; > + dev->data->tx_queue_state[0] = RTE_ETH_QUEUE_STATE_STOPPED; > + dev->data->rx_queue_state[0] = RTE_ETH_QUEUE_STATE_STOPPED; same here, just above "status_down" is better place and by using dev->data->nb_[r/t]x_queues > goto status_down; > } >