On 9/1/2020 12:51 PM, Jiawen Wu wrote: > Add remaining receive and transmit queue operaions. > > Signed-off-by: Jiawen Wu <jiawe...@trustnetic.com> > --- > drivers/net/txgbe/txgbe_ethdev.c | 123 +++++++++++++++ > drivers/net/txgbe/txgbe_ethdev.h | 16 ++ > drivers/net/txgbe/txgbe_rxtx.c | 259 +++++++++++++++++++++++++++++++ > drivers/net/txgbe/txgbe_rxtx.h | 1 + > 4 files changed, 399 insertions(+) > > diff --git a/drivers/net/txgbe/txgbe_ethdev.c > b/drivers/net/txgbe/txgbe_ethdev.c > index ba2849a82..54c97f81c 100644 > --- a/drivers/net/txgbe/txgbe_ethdev.c > +++ b/drivers/net/txgbe/txgbe_ethdev.c > @@ -622,6 +622,46 @@ static struct rte_pci_driver rte_txgbe_pmd = { > > > > +static int > +txgbe_check_mq_mode(struct rte_eth_dev *dev) > +{ > + RTE_SET_USED(dev); > + > + return 0; > +} > + > +static int > +txgbe_dev_configure(struct rte_eth_dev *dev) > +{ > + struct txgbe_interrupt *intr = TXGBE_DEV_INTR(dev); > + struct txgbe_adapter *adapter = TXGBE_DEV_ADAPTER(dev); > + int ret; > + > + PMD_INIT_FUNC_TRACE(); > + > + if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) > + dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH; > + > + /* multiple queue mode checking */ > + ret = txgbe_check_mq_mode(dev); > + if (ret != 0) { > + PMD_DRV_LOG(ERR, "txgbe_check_mq_mode fails with %d.", > + ret); > + return ret; > + } > + > + /* set flag to update link status after init */ > + intr->flags |= TXGBE_FLAG_NEED_LINK_UPDATE; > + > + /* > + * Initialize to TRUE. If any of Rx queues doesn't meet the bulk > + * allocation Rx preconditions we will reset it. > + */ > + adapter->rx_bulk_alloc_allowed = true; > + > + return 0; > +}
'.dev_configure' is relatively more important funtion for the driver, I think it would be better to introduce it in earlier stages in the patchset, if possible. There is no guideline or requirement for the ordering but if the re-ordering patches won't cause too much work, I would suggest following order as guideline if helps (please don't take it too strict): - basic infrastructure - build files, initial doc, log, probe()/init() funtions, base files (hw config files) ... - device configuration - .dev_configure, .dev_infos_get, interrupt configuration, mac set, link status ... - Data path - Rx/Tx init, queue setup, start/stop, data path implementations, ... - More features - stats, vlan, flow ctrl, promiscuous and allmulticast, mtu ... - Optional features - fw version, dump registers, led, eeprom get, descriptor_status ...