Message ID | 20200909130148.1756518-2-ferruh.yigit@intel.com |
---|---|
State | Accepted, archived |
Delegated to: | Ferruh Yigit |
Headers | show |
Series |
|
Related | show |
Context | Check | Description |
---|---|---|
ci/checkpatch | warning | coding style issues |
Acked-by: Sachin Saxena<sachin.saxena@oss.nxp.com> On 09-Sep-20 6:31 PM, Ferruh Yigit wrote: > This patch is a preparation to hide the 'struct eth_dev_ops' from > applications by moving some device operations from 'struct eth_dev_ops' > to 'struct rte_eth_dev'. > > Mentioned ethdev APIs are in the data path and implemented as inline > because of performance reasons. > > Exposing 'struct eth_dev_ops' to applications is bad because it is a > contract between ethdev and PMDs, not really needs to be known by > applications, also changes in the struct causing ABI breakages which > shouldn't. > > To be able to both keep APIs inline and hide the 'struct eth_dev_ops', > moving device operations used in ethdev inline APIs to 'struct > rte_eth_dev' to the same level with Rx/Tx burst functions. > > The list of dev_ops moved: > eth_rx_queue_count_t rx_queue_count; > eth_rx_descriptor_done_t rx_descriptor_done; > eth_rx_descriptor_status_t rx_descriptor_status; > eth_tx_descriptor_status_t tx_descriptor_status; > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> > Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> > Acked-by: David Marchand <david.marchand@redhat.com> > --- > v2: > * Updated features.rst > * Tweak assignment order in sfc > > Cc: David Marchand <david.marchand@redhat.com> > v3: > * ``rx_descriptor_done`` also moved > * release note updated > --- > doc/guides/nics/features.rst | 6 +++--- > doc/guides/rel_notes/release_20_11.rst | 9 +++++++++ > drivers/net/ark/ark_ethdev.c | 2 +- > drivers/net/atlantic/atl_ethdev.c | 9 +++++---- > drivers/net/axgbe/axgbe_ethdev.c | 5 +++-- > drivers/net/bnxt/bnxt_ethdev.c | 6 +++--- > drivers/net/dpaa/dpaa_ethdev.c | 2 +- > drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- > drivers/net/e1000/em_ethdev.c | 8 ++++---- > drivers/net/e1000/igb_ethdev.c | 14 +++++++------- > drivers/net/enic/enic_ethdev.c | 3 +-- > drivers/net/fm10k/fm10k_ethdev.c | 8 ++++---- > drivers/net/i40e/i40e_ethdev.c | 8 ++++---- > drivers/net/i40e/i40e_ethdev_vf.c | 8 ++++---- > drivers/net/iavf/iavf_ethdev.c | 6 +++--- > drivers/net/ice/ice_ethdev.c | 6 +++--- > drivers/net/igc/igc_ethdev.c | 8 ++++---- > drivers/net/ixgbe/ixgbe_ethdev.c | 14 +++++++------- > drivers/net/mlx5/linux/mlx5_os.c | 12 +++++------- > drivers/net/mlx5/mlx5_flow.c | 4 ++++ > drivers/net/netvsc/hn_ethdev.c | 6 +++--- > drivers/net/nfp/nfp_net.c | 2 +- > drivers/net/octeontx2/otx2_ethdev.c | 8 ++++---- > drivers/net/qede/qede_ethdev.c | 3 +-- > drivers/net/sfc/sfc_ethdev.c | 16 ++++++++-------- > drivers/net/thunderx/nicvf_ethdev.c | 2 +- > drivers/net/vhost/rte_eth_vhost.c | 2 +- > drivers/net/virtio/virtio_ethdev.c | 2 +- > lib/librte_ethdev/rte_ethdev.h | 17 ++++++++--------- > lib/librte_ethdev/rte_ethdev_core.h | 13 ++++++------- > 30 files changed, 110 insertions(+), 101 deletions(-) > > diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst > index edd21c4d8e..dd8c9555b0 100644 > --- a/doc/guides/nics/features.rst > +++ b/doc/guides/nics/features.rst > @@ -646,9 +646,9 @@ used, status can be "Available", "Done" or "Unavailable". When > ``rx_descriptor_done`` is used, status can be "DD bit is set" or "DD bit is > not set". > > -* **[implements] eth_dev_ops**: ``rx_descriptor_status``. > +* **[implements] rte_eth_dev**: ``rx_descriptor_status``. > * **[related] API**: ``rte_eth_rx_descriptor_status()``. > -* **[implements] eth_dev_ops**: ``rx_descriptor_done``. > +* **[implements] rte_eth_dev**: ``rx_descriptor_done``. > * **[related] API**: ``rte_eth_rx_descriptor_done()``. > > > @@ -660,7 +660,7 @@ Tx descriptor status > Supports checking the status of a Tx descriptor. Status can be "Full", "Done" > or "Unavailable." > > -* **[implements] eth_dev_ops**: ``tx_descriptor_status``. > +* **[implements] rte_eth_dev**: ``tx_descriptor_status``. > * **[related] API**: ``rte_eth_tx_descriptor_status()``. > > > diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst > index a7d57b001d..ff7242012b 100644 > --- a/doc/guides/rel_notes/release_20_11.rst > +++ b/doc/guides/rel_notes/release_20_11.rst > @@ -102,6 +102,15 @@ ABI Changes > Also, make sure to start the actual text at the margin. > ======================================================= > > +* ``ethdev`` changes > + > + * Following device operation function pointers moved from ``struct eth_dev_ops`` to ``struct rte_eth_dev``: > + > + * ``eth_rx_queue_count_t rx_queue_count;`` > + * ``eth_rx_descriptor_done_t rx_descriptor_done;`` > + * ``eth_rx_descriptor_status_t rx_descriptor_status;`` > + * ``eth_tx_descriptor_status_t tx_descriptor_status;`` > + > > Known Issues > ------------ > diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c > index b32ccd8677..ce7f6e4803 100644 > --- a/drivers/net/ark/ark_ethdev.c > +++ b/drivers/net/ark/ark_ethdev.c > @@ -132,7 +132,6 @@ static const struct eth_dev_ops ark_eth_dev_ops = { > .dev_infos_get = eth_ark_dev_info_get, > > .rx_queue_setup = eth_ark_dev_rx_queue_setup, > - .rx_queue_count = eth_ark_dev_rx_queue_count, > .tx_queue_setup = eth_ark_tx_queue_setup, > > .link_update = eth_ark_dev_link_update, > @@ -318,6 +317,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev) > return -1; > > dev->dev_ops = &ark_eth_dev_ops; > + dev->rx_queue_count = eth_ark_dev_rx_queue_count; > > dev->data->mac_addrs = rte_zmalloc("ark", RTE_ETHER_ADDR_LEN, 0); > if (!dev->data->mac_addrs) { > diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c > index d3b00ab295..540b106045 100644 > --- a/drivers/net/atlantic/atl_ethdev.c > +++ b/drivers/net/atlantic/atl_ethdev.c > @@ -313,10 +313,6 @@ static const struct eth_dev_ops atl_eth_dev_ops = { > .rx_queue_intr_enable = atl_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = atl_dev_rx_queue_intr_disable, > > - .rx_queue_count = atl_rx_queue_count, > - .rx_descriptor_status = atl_dev_rx_descriptor_status, > - .tx_descriptor_status = atl_dev_tx_descriptor_status, > - > /* EEPROM */ > .get_eeprom_length = atl_dev_get_eeprom_length, > .get_eeprom = atl_dev_get_eeprom, > @@ -373,6 +369,11 @@ eth_atl_dev_init(struct rte_eth_dev *eth_dev) > PMD_INIT_FUNC_TRACE(); > > eth_dev->dev_ops = &atl_eth_dev_ops; > + > + eth_dev->rx_queue_count = atl_rx_queue_count; > + eth_dev->rx_descriptor_status = atl_dev_rx_descriptor_status; > + eth_dev->tx_descriptor_status = atl_dev_tx_descriptor_status; > + > eth_dev->rx_pkt_burst = &atl_recv_pkts; > eth_dev->tx_pkt_burst = &atl_xmit_pkts; > eth_dev->tx_pkt_prepare = &atl_prep_pkts; > diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c > index 0c25739f82..02ceb95754 100644 > --- a/drivers/net/axgbe/axgbe_ethdev.c > +++ b/drivers/net/axgbe/axgbe_ethdev.c > @@ -224,8 +224,6 @@ static const struct eth_dev_ops axgbe_eth_dev_ops = { > .rxq_info_get = axgbe_rxq_info_get, > .txq_info_get = axgbe_txq_info_get, > .dev_supported_ptypes_get = axgbe_dev_supported_ptypes_get, > - .rx_descriptor_status = axgbe_dev_rx_descriptor_status, > - .tx_descriptor_status = axgbe_dev_tx_descriptor_status, > .mtu_set = axgb_mtu_set, > }; > > @@ -1632,6 +1630,9 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev) > > eth_dev->dev_ops = &axgbe_eth_dev_ops; > > + eth_dev->rx_descriptor_status = axgbe_dev_rx_descriptor_status; > + eth_dev->tx_descriptor_status = axgbe_dev_tx_descriptor_status; > + > /* > * For secondary processes, we don't initialise any further as primary > * has already done this work. > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c > index 75d055be00..4d224bfa04 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -4246,9 +4246,6 @@ static const struct eth_dev_ops bnxt_dev_ops = { > .dev_led_off = bnxt_dev_led_off_op, > .xstats_get_by_id = bnxt_dev_xstats_get_by_id_op, > .xstats_get_names_by_id = bnxt_dev_xstats_get_names_by_id_op, > - .rx_queue_count = bnxt_rx_queue_count_op, > - .rx_descriptor_status = bnxt_rx_descriptor_status_op, > - .tx_descriptor_status = bnxt_tx_descriptor_status_op, > .rx_queue_start = bnxt_rx_queue_start, > .rx_queue_stop = bnxt_rx_queue_stop, > .tx_queue_start = bnxt_tx_queue_start, > @@ -5681,6 +5678,9 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused) > PMD_DRV_LOG(INFO, "%s\n", bnxt_version); > > eth_dev->dev_ops = &bnxt_dev_ops; > + eth_dev->rx_queue_count = bnxt_rx_queue_count_op; > + eth_dev->rx_descriptor_status = bnxt_rx_descriptor_status_op; > + eth_dev->tx_descriptor_status = bnxt_tx_descriptor_status_op; > eth_dev->rx_pkt_burst = &bnxt_recv_pkts; > eth_dev->tx_pkt_burst = &bnxt_xmit_pkts; > > diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c > index b0f2023e60..e2c3fd0368 100644 > --- a/drivers/net/dpaa/dpaa_ethdev.c > +++ b/drivers/net/dpaa/dpaa_ethdev.c > @@ -1421,7 +1421,6 @@ static struct eth_dev_ops dpaa_devops = { > .tx_queue_setup = dpaa_eth_tx_queue_setup, > .rx_queue_release = dpaa_eth_rx_queue_release, > .tx_queue_release = dpaa_eth_tx_queue_release, > - .rx_queue_count = dpaa_dev_rx_queue_count, > .rx_burst_mode_get = dpaa_dev_rx_burst_mode_get, > .tx_burst_mode_get = dpaa_dev_tx_burst_mode_get, > .rxq_info_get = dpaa_rxq_info_get, > @@ -1917,6 +1916,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev) > > /* Populate ethdev structure */ > eth_dev->dev_ops = &dpaa_devops; > + eth_dev->rx_queue_count = dpaa_dev_rx_queue_count; > eth_dev->rx_pkt_burst = dpaa_eth_queue_rx; > eth_dev->tx_pkt_burst = dpaa_eth_tx_drop_all; > > diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c > index 02c254846c..38cf0ab71c 100644 > --- a/drivers/net/dpaa2/dpaa2_ethdev.c > +++ b/drivers/net/dpaa2/dpaa2_ethdev.c > @@ -2331,7 +2331,6 @@ static struct eth_dev_ops dpaa2_ethdev_ops = { > .tx_queue_release = dpaa2_dev_tx_queue_release, > .rx_burst_mode_get = dpaa2_dev_rx_burst_mode_get, > .tx_burst_mode_get = dpaa2_dev_tx_burst_mode_get, > - .rx_queue_count = dpaa2_dev_rx_queue_count, > .flow_ctrl_get = dpaa2_flow_ctrl_get, > .flow_ctrl_set = dpaa2_flow_ctrl_set, > .mac_addr_add = dpaa2_dev_add_mac_addr, > @@ -2486,6 +2485,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev) > * plugged. > */ > eth_dev->dev_ops = &dpaa2_ethdev_ops; > + eth_dev->rx_queue_count = dpaa2_dev_rx_queue_count; > if (dpaa2_get_devargs(dev->devargs, DRIVER_LOOPBACK_MODE)) > eth_dev->rx_pkt_burst = dpaa2_dev_loopback_rx; > else if (dpaa2_get_devargs(dev->devargs, > diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c > index 902b1cdca0..82766da882 100644 > --- a/drivers/net/e1000/em_ethdev.c > +++ b/drivers/net/e1000/em_ethdev.c > @@ -176,10 +176,6 @@ static const struct eth_dev_ops eth_em_ops = { > .vlan_offload_set = eth_em_vlan_offload_set, > .rx_queue_setup = eth_em_rx_queue_setup, > .rx_queue_release = eth_em_rx_queue_release, > - .rx_queue_count = eth_em_rx_queue_count, > - .rx_descriptor_done = eth_em_rx_descriptor_done, > - .rx_descriptor_status = eth_em_rx_descriptor_status, > - .tx_descriptor_status = eth_em_tx_descriptor_status, > .tx_queue_setup = eth_em_tx_queue_setup, > .tx_queue_release = eth_em_tx_queue_release, > .rx_queue_intr_enable = eth_em_rx_queue_intr_enable, > @@ -250,6 +246,10 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev) > E1000_DEV_PRIVATE_TO_VFTA(eth_dev->data->dev_private); > > eth_dev->dev_ops = ð_em_ops; > + eth_dev->rx_queue_count = eth_em_rx_queue_count; > + eth_dev->rx_descriptor_done = eth_em_rx_descriptor_done; > + eth_dev->rx_descriptor_status = eth_em_rx_descriptor_status; > + eth_dev->tx_descriptor_status = eth_em_tx_descriptor_status; > eth_dev->rx_pkt_burst = (eth_rx_burst_t)ð_em_recv_pkts; > eth_dev->tx_pkt_burst = (eth_tx_burst_t)ð_em_xmit_pkts; > eth_dev->tx_pkt_prepare = (eth_tx_prep_t)ð_em_prep_pkts; > diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c > index a5551e8175..fe0cea88c2 100644 > --- a/drivers/net/e1000/igb_ethdev.c > +++ b/drivers/net/e1000/igb_ethdev.c > @@ -380,10 +380,6 @@ static const struct eth_dev_ops eth_igb_ops = { > .rx_queue_intr_enable = eth_igb_rx_queue_intr_enable, > .rx_queue_intr_disable = eth_igb_rx_queue_intr_disable, > .rx_queue_release = eth_igb_rx_queue_release, > - .rx_queue_count = eth_igb_rx_queue_count, > - .rx_descriptor_done = eth_igb_rx_descriptor_done, > - .rx_descriptor_status = eth_igb_rx_descriptor_status, > - .tx_descriptor_status = eth_igb_tx_descriptor_status, > .tx_queue_setup = eth_igb_tx_queue_setup, > .tx_queue_release = eth_igb_tx_queue_release, > .tx_done_cleanup = eth_igb_tx_done_cleanup, > @@ -441,9 +437,6 @@ static const struct eth_dev_ops igbvf_eth_dev_ops = { > .dev_supported_ptypes_get = eth_igb_supported_ptypes_get, > .rx_queue_setup = eth_igb_rx_queue_setup, > .rx_queue_release = eth_igb_rx_queue_release, > - .rx_descriptor_done = eth_igb_rx_descriptor_done, > - .rx_descriptor_status = eth_igb_rx_descriptor_status, > - .tx_descriptor_status = eth_igb_tx_descriptor_status, > .tx_queue_setup = eth_igb_tx_queue_setup, > .tx_queue_release = eth_igb_tx_queue_release, > .tx_done_cleanup = eth_igb_tx_done_cleanup, > @@ -754,6 +747,10 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev) > uint32_t ctrl_ext; > > eth_dev->dev_ops = ð_igb_ops; > + eth_dev->rx_queue_count = eth_igb_rx_queue_count; > + eth_dev->rx_descriptor_done = eth_igb_rx_descriptor_done; > + eth_dev->rx_descriptor_status = eth_igb_rx_descriptor_status; > + eth_dev->tx_descriptor_status = eth_igb_tx_descriptor_status; > eth_dev->rx_pkt_burst = ð_igb_recv_pkts; > eth_dev->tx_pkt_burst = ð_igb_xmit_pkts; > eth_dev->tx_pkt_prepare = ð_igb_prep_pkts; > @@ -949,6 +946,9 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev) > PMD_INIT_FUNC_TRACE(); > > eth_dev->dev_ops = &igbvf_eth_dev_ops; > + eth_dev->rx_descriptor_done = eth_igb_rx_descriptor_done; > + eth_dev->rx_descriptor_status = eth_igb_rx_descriptor_status; > + eth_dev->tx_descriptor_status = eth_igb_tx_descriptor_status; > eth_dev->rx_pkt_burst = ð_igb_recv_pkts; > eth_dev->tx_pkt_burst = ð_igb_xmit_pkts; > eth_dev->tx_pkt_prepare = ð_igb_prep_pkts; > diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c > index ca75919ee2..2cffa3aa2d 100644 > --- a/drivers/net/enic/enic_ethdev.c > +++ b/drivers/net/enic/enic_ethdev.c > @@ -1141,8 +1141,6 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = { > .tx_queue_stop = enicpmd_dev_tx_queue_stop, > .rx_queue_setup = enicpmd_dev_rx_queue_setup, > .rx_queue_release = enicpmd_dev_rx_queue_release, > - .rx_queue_count = enicpmd_dev_rx_queue_count, > - .rx_descriptor_done = NULL, > .tx_queue_setup = enicpmd_dev_tx_queue_setup, > .tx_queue_release = enicpmd_dev_tx_queue_release, > .rx_queue_intr_enable = enicpmd_dev_rx_queue_intr_enable, > @@ -1279,6 +1277,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev) > ENICPMD_FUNC_TRACE(); > > eth_dev->dev_ops = &enicpmd_eth_dev_ops; > + eth_dev->rx_queue_count = enicpmd_dev_rx_queue_count; > eth_dev->rx_pkt_burst = &enic_recv_pkts; > eth_dev->tx_pkt_burst = &enic_xmit_pkts; > eth_dev->tx_pkt_prepare = &enic_prep_pkts; > diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c > index fd927923da..e6043e1455 100644 > --- a/drivers/net/fm10k/fm10k_ethdev.c > +++ b/drivers/net/fm10k/fm10k_ethdev.c > @@ -2855,10 +2855,6 @@ static const struct eth_dev_ops fm10k_eth_dev_ops = { > .rx_queue_release = fm10k_rx_queue_release, > .tx_queue_setup = fm10k_tx_queue_setup, > .tx_queue_release = fm10k_tx_queue_release, > - .rx_queue_count = fm10k_dev_rx_queue_count, > - .rx_descriptor_done = fm10k_dev_rx_descriptor_done, > - .rx_descriptor_status = fm10k_dev_rx_descriptor_status, > - .tx_descriptor_status = fm10k_dev_tx_descriptor_status, > .rx_queue_intr_enable = fm10k_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = fm10k_dev_rx_queue_intr_disable, > .reta_update = fm10k_reta_update, > @@ -3055,6 +3051,10 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev) > PMD_INIT_FUNC_TRACE(); > > dev->dev_ops = &fm10k_eth_dev_ops; > + dev->rx_queue_count = fm10k_dev_rx_queue_count; > + dev->rx_descriptor_done = fm10k_dev_rx_descriptor_done; > + dev->rx_descriptor_status = fm10k_dev_rx_descriptor_status; > + dev->tx_descriptor_status = fm10k_dev_tx_descriptor_status; > dev->rx_pkt_burst = &fm10k_recv_pkts; > dev->tx_pkt_burst = &fm10k_xmit_pkts; > dev->tx_pkt_prepare = &fm10k_prep_pkts; > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c > index 841447228a..80efd06cd9 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -474,10 +474,6 @@ static const struct eth_dev_ops i40e_eth_dev_ops = { > .rx_queue_intr_enable = i40e_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = i40e_dev_rx_queue_intr_disable, > .rx_queue_release = i40e_dev_rx_queue_release, > - .rx_queue_count = i40e_dev_rx_queue_count, > - .rx_descriptor_done = i40e_dev_rx_descriptor_done, > - .rx_descriptor_status = i40e_dev_rx_descriptor_status, > - .tx_descriptor_status = i40e_dev_tx_descriptor_status, > .tx_queue_setup = i40e_dev_tx_queue_setup, > .tx_queue_release = i40e_dev_tx_queue_release, > .dev_led_on = i40e_dev_led_on, > @@ -1448,6 +1444,10 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) > PMD_INIT_FUNC_TRACE(); > > dev->dev_ops = &i40e_eth_dev_ops; > + dev->rx_queue_count = i40e_dev_rx_queue_count; > + dev->rx_descriptor_done = i40e_dev_rx_descriptor_done; > + dev->rx_descriptor_status = i40e_dev_rx_descriptor_status; > + dev->tx_descriptor_status = i40e_dev_tx_descriptor_status; > dev->rx_pkt_burst = i40e_recv_pkts; > dev->tx_pkt_burst = i40e_xmit_pkts; > dev->tx_pkt_prepare = i40e_prep_pkts; > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c > index b755350cd2..be4b28fa45 100644 > --- a/drivers/net/i40e/i40e_ethdev_vf.c > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > @@ -199,12 +199,8 @@ static const struct eth_dev_ops i40evf_eth_dev_ops = { > .rx_queue_release = i40e_dev_rx_queue_release, > .rx_queue_intr_enable = i40evf_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = i40evf_dev_rx_queue_intr_disable, > - .rx_descriptor_done = i40e_dev_rx_descriptor_done, > - .rx_descriptor_status = i40e_dev_rx_descriptor_status, > - .tx_descriptor_status = i40e_dev_tx_descriptor_status, > .tx_queue_setup = i40e_dev_tx_queue_setup, > .tx_queue_release = i40e_dev_tx_queue_release, > - .rx_queue_count = i40e_dev_rx_queue_count, > .rxq_info_get = i40e_rxq_info_get, > .txq_info_get = i40e_txq_info_get, > .mac_addr_add = i40evf_add_mac_addr, > @@ -1561,6 +1557,10 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) > > /* assign ops func pointer */ > eth_dev->dev_ops = &i40evf_eth_dev_ops; > + eth_dev->rx_queue_count = i40e_dev_rx_queue_count; > + eth_dev->rx_descriptor_done = i40e_dev_rx_descriptor_done; > + eth_dev->rx_descriptor_status = i40e_dev_rx_descriptor_status; > + eth_dev->tx_descriptor_status = i40e_dev_tx_descriptor_status; > eth_dev->rx_pkt_burst = &i40e_recv_pkts; > eth_dev->tx_pkt_burst = &i40e_xmit_pkts; > > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c > index 8e1d8a8d3e..e1ff38e8be 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -117,9 +117,6 @@ static const struct eth_dev_ops iavf_eth_dev_ops = { > .rss_hash_conf_get = iavf_dev_rss_hash_conf_get, > .rxq_info_get = iavf_dev_rxq_info_get, > .txq_info_get = iavf_dev_txq_info_get, > - .rx_queue_count = iavf_dev_rxq_count, > - .rx_descriptor_status = iavf_dev_rx_desc_status, > - .tx_descriptor_status = iavf_dev_tx_desc_status, > .mtu_set = iavf_dev_mtu_set, > .rx_queue_intr_enable = iavf_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = iavf_dev_rx_queue_intr_disable, > @@ -1383,6 +1380,9 @@ iavf_dev_init(struct rte_eth_dev *eth_dev) > > /* assign ops func pointer */ > eth_dev->dev_ops = &iavf_eth_dev_ops; > + eth_dev->rx_queue_count = iavf_dev_rxq_count; > + eth_dev->rx_descriptor_status = iavf_dev_rx_desc_status; > + eth_dev->tx_descriptor_status = iavf_dev_tx_desc_status; > eth_dev->rx_pkt_burst = &iavf_recv_pkts; > eth_dev->tx_pkt_burst = &iavf_xmit_pkts; > eth_dev->tx_pkt_prepare = &iavf_prep_pkts; > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c > index c5dac2e328..c8b16c7f87 100644 > --- a/drivers/net/ice/ice_ethdev.c > +++ b/drivers/net/ice/ice_ethdev.c > @@ -205,9 +205,6 @@ static const struct eth_dev_ops ice_eth_dev_ops = { > .tx_burst_mode_get = ice_tx_burst_mode_get, > .get_eeprom_length = ice_get_eeprom_length, > .get_eeprom = ice_get_eeprom, > - .rx_queue_count = ice_rx_queue_count, > - .rx_descriptor_status = ice_rx_descriptor_status, > - .tx_descriptor_status = ice_tx_descriptor_status, > .stats_get = ice_stats_get, > .stats_reset = ice_stats_reset, > .xstats_get = ice_xstats_get, > @@ -2163,6 +2160,9 @@ ice_dev_init(struct rte_eth_dev *dev) > int ret; > > dev->dev_ops = &ice_eth_dev_ops; > + dev->rx_queue_count = ice_rx_queue_count; > + dev->rx_descriptor_status = ice_rx_descriptor_status; > + dev->tx_descriptor_status = ice_tx_descriptor_status; > dev->rx_pkt_burst = ice_recv_pkts; > dev->tx_pkt_burst = ice_xmit_pkts; > dev->tx_pkt_prepare = ice_prep_pkts; > diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c > index 6ab3ee909d..aa37c11861 100644 > --- a/drivers/net/igc/igc_ethdev.c > +++ b/drivers/net/igc/igc_ethdev.c > @@ -272,10 +272,6 @@ static const struct eth_dev_ops eth_igc_ops = { > > .rx_queue_setup = eth_igc_rx_queue_setup, > .rx_queue_release = eth_igc_rx_queue_release, > - .rx_queue_count = eth_igc_rx_queue_count, > - .rx_descriptor_done = eth_igc_rx_descriptor_done, > - .rx_descriptor_status = eth_igc_rx_descriptor_status, > - .tx_descriptor_status = eth_igc_tx_descriptor_status, > .tx_queue_setup = eth_igc_tx_queue_setup, > .tx_queue_release = eth_igc_tx_queue_release, > .tx_done_cleanup = eth_igc_tx_done_cleanup, > @@ -1227,6 +1223,10 @@ eth_igc_dev_init(struct rte_eth_dev *dev) > > PMD_INIT_FUNC_TRACE(); > dev->dev_ops = ð_igc_ops; > + dev->rx_descriptor_done = eth_igc_rx_descriptor_done; > + dev->rx_queue_count = eth_igc_rx_queue_count; > + dev->rx_descriptor_status = eth_igc_rx_descriptor_status; > + dev->tx_descriptor_status = eth_igc_tx_descriptor_status; > > /* > * for secondary processes, we don't initialize any further as primary > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c > index d9582473a4..337ce90fbf 100644 > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > @@ -545,10 +545,6 @@ static const struct eth_dev_ops ixgbe_eth_dev_ops = { > .rx_queue_intr_enable = ixgbe_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = ixgbe_dev_rx_queue_intr_disable, > .rx_queue_release = ixgbe_dev_rx_queue_release, > - .rx_queue_count = ixgbe_dev_rx_queue_count, > - .rx_descriptor_done = ixgbe_dev_rx_descriptor_done, > - .rx_descriptor_status = ixgbe_dev_rx_descriptor_status, > - .tx_descriptor_status = ixgbe_dev_tx_descriptor_status, > .tx_queue_setup = ixgbe_dev_tx_queue_setup, > .tx_queue_release = ixgbe_dev_tx_queue_release, > .dev_led_on = ixgbe_dev_led_on, > @@ -622,9 +618,6 @@ static const struct eth_dev_ops ixgbevf_eth_dev_ops = { > .vlan_offload_set = ixgbevf_vlan_offload_set, > .rx_queue_setup = ixgbe_dev_rx_queue_setup, > .rx_queue_release = ixgbe_dev_rx_queue_release, > - .rx_descriptor_done = ixgbe_dev_rx_descriptor_done, > - .rx_descriptor_status = ixgbe_dev_rx_descriptor_status, > - .tx_descriptor_status = ixgbe_dev_tx_descriptor_status, > .tx_queue_setup = ixgbe_dev_tx_queue_setup, > .tx_queue_release = ixgbe_dev_tx_queue_release, > .rx_queue_intr_enable = ixgbevf_dev_rx_queue_intr_enable, > @@ -1091,6 +1084,10 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused) > ixgbe_dev_macsec_setting_reset(eth_dev); > > eth_dev->dev_ops = &ixgbe_eth_dev_ops; > + eth_dev->rx_queue_count = ixgbe_dev_rx_queue_count; > + eth_dev->rx_descriptor_done = ixgbe_dev_rx_descriptor_done; > + eth_dev->rx_descriptor_status = ixgbe_dev_rx_descriptor_status; > + eth_dev->tx_descriptor_status = ixgbe_dev_tx_descriptor_status; > eth_dev->rx_pkt_burst = &ixgbe_recv_pkts; > eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts; > eth_dev->tx_pkt_prepare = &ixgbe_prep_pkts; > @@ -1570,6 +1567,9 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev) > PMD_INIT_FUNC_TRACE(); > > eth_dev->dev_ops = &ixgbevf_eth_dev_ops; > + eth_dev->rx_descriptor_done = ixgbe_dev_rx_descriptor_done; > + eth_dev->rx_descriptor_status = ixgbe_dev_rx_descriptor_status; > + eth_dev->tx_descriptor_status = ixgbe_dev_tx_descriptor_status; > eth_dev->rx_pkt_burst = &ixgbe_recv_pkts; > eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts; > > diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c > index bf1f82ba67..ec3cc4000e 100644 > --- a/drivers/net/mlx5/linux/mlx5_os.c > +++ b/drivers/net/mlx5/linux/mlx5_os.c > @@ -601,6 +601,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > } > eth_dev->device = dpdk_dev; > eth_dev->dev_ops = &mlx5_os_dev_sec_ops; > + eth_dev->rx_descriptor_status = mlx5_rx_descriptor_status; > + eth_dev->tx_descriptor_status = mlx5_tx_descriptor_status; > err = mlx5_proc_priv_init(eth_dev); > if (err) > return NULL; > @@ -1208,6 +1210,9 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > eth_dev->rx_pkt_burst = removed_rx_burst; > eth_dev->tx_pkt_burst = removed_tx_burst; > eth_dev->dev_ops = &mlx5_os_dev_ops; > + eth_dev->rx_descriptor_status = mlx5_rx_descriptor_status; > + eth_dev->tx_descriptor_status = mlx5_tx_descriptor_status; > + eth_dev->rx_queue_count = mlx5_rx_queue_count; > /* Register MAC address. */ > claim_zero(mlx5_mac_addr_add(eth_dev, &mac, 0, 0)); > if (config->vf && config->vf_nl_en) > @@ -2396,13 +2401,10 @@ const struct eth_dev_ops mlx5_os_dev_ops = { > .rss_hash_update = mlx5_rss_hash_update, > .rss_hash_conf_get = mlx5_rss_hash_conf_get, > .filter_ctrl = mlx5_dev_filter_ctrl, > - .rx_descriptor_status = mlx5_rx_descriptor_status, > - .tx_descriptor_status = mlx5_tx_descriptor_status, > .rxq_info_get = mlx5_rxq_info_get, > .txq_info_get = mlx5_txq_info_get, > .rx_burst_mode_get = mlx5_rx_burst_mode_get, > .tx_burst_mode_get = mlx5_tx_burst_mode_get, > - .rx_queue_count = mlx5_rx_queue_count, > .rx_queue_intr_enable = mlx5_rx_intr_enable, > .rx_queue_intr_disable = mlx5_rx_intr_disable, > .is_removed = mlx5_is_removed, > @@ -2427,8 +2429,6 @@ const struct eth_dev_ops mlx5_os_dev_sec_ops = { > .rx_queue_stop = mlx5_rx_queue_stop, > .tx_queue_start = mlx5_tx_queue_start, > .tx_queue_stop = mlx5_tx_queue_stop, > - .rx_descriptor_status = mlx5_rx_descriptor_status, > - .tx_descriptor_status = mlx5_tx_descriptor_status, > .rxq_info_get = mlx5_rxq_info_get, > .txq_info_get = mlx5_txq_info_get, > .rx_burst_mode_get = mlx5_rx_burst_mode_get, > @@ -2480,8 +2480,6 @@ const struct eth_dev_ops mlx5_os_dev_ops_isolate = { > .vlan_strip_queue_set = mlx5_vlan_strip_queue_set, > .vlan_offload_set = mlx5_vlan_offload_set, > .filter_ctrl = mlx5_dev_filter_ctrl, > - .rx_descriptor_status = mlx5_rx_descriptor_status, > - .tx_descriptor_status = mlx5_tx_descriptor_status, > .rxq_info_get = mlx5_rxq_info_get, > .txq_info_get = mlx5_txq_info_get, > .rx_burst_mode_get = mlx5_rx_burst_mode_get, > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 4c29898203..eb55bd7f99 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -5138,6 +5138,10 @@ mlx5_flow_isolate(struct rte_eth_dev *dev, > dev->dev_ops = &mlx5_os_dev_ops_isolate; > else > dev->dev_ops = &mlx5_os_dev_ops; > + > + dev->rx_descriptor_status = mlx5_rx_descriptor_status; > + dev->tx_descriptor_status = mlx5_tx_descriptor_status; > + > return 0; > } > > diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c > index fd91c0e491..229c1b9149 100644 > --- a/drivers/net/netvsc/hn_ethdev.c > +++ b/drivers/net/netvsc/hn_ethdev.c > @@ -871,11 +871,8 @@ static const struct eth_dev_ops hn_eth_dev_ops = { > .tx_queue_setup = hn_dev_tx_queue_setup, > .tx_queue_release = hn_dev_tx_queue_release, > .tx_done_cleanup = hn_dev_tx_done_cleanup, > - .tx_descriptor_status = hn_dev_tx_descriptor_status, > .rx_queue_setup = hn_dev_rx_queue_setup, > .rx_queue_release = hn_dev_rx_queue_release, > - .rx_queue_count = hn_dev_rx_queue_count, > - .rx_descriptor_status = hn_dev_rx_queue_status, > .link_update = hn_dev_link_update, > .stats_get = hn_dev_stats_get, > .stats_reset = hn_dev_stats_reset, > @@ -936,6 +933,9 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) > > vmbus = container_of(device, struct rte_vmbus_device, device); > eth_dev->dev_ops = &hn_eth_dev_ops; > + eth_dev->rx_queue_count = hn_dev_rx_queue_count; > + eth_dev->rx_descriptor_status = hn_dev_rx_queue_status; > + eth_dev->tx_descriptor_status = hn_dev_tx_descriptor_status; > eth_dev->tx_pkt_burst = &hn_xmit_pkts; > eth_dev->rx_pkt_burst = &hn_recv_pkts; > > diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c > index 99946279db..c556dedab6 100644 > --- a/drivers/net/nfp/nfp_net.c > +++ b/drivers/net/nfp/nfp_net.c > @@ -2701,7 +2701,6 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { > .rss_hash_conf_get = nfp_net_rss_hash_conf_get, > .rx_queue_setup = nfp_net_rx_queue_setup, > .rx_queue_release = nfp_net_rx_queue_release, > - .rx_queue_count = nfp_net_rx_queue_count, > .tx_queue_setup = nfp_net_tx_queue_setup, > .tx_queue_release = nfp_net_tx_queue_release, > .rx_queue_intr_enable = nfp_rx_queue_intr_enable, > @@ -2785,6 +2784,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) > } > > eth_dev->dev_ops = &nfp_net_eth_dev_ops; > + eth_dev->rx_queue_count = nfp_net_rx_queue_count; > eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; > eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; > > diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c > index 33b72bd4db..c06e32f26b 100644 > --- a/drivers/net/octeontx2/otx2_ethdev.c > +++ b/drivers/net/octeontx2/otx2_ethdev.c > @@ -2272,10 +2272,6 @@ static const struct eth_dev_ops otx2_eth_dev_ops = { > .txq_info_get = otx2_nix_txq_info_get, > .rx_burst_mode_get = otx2_rx_burst_mode_get, > .tx_burst_mode_get = otx2_tx_burst_mode_get, > - .rx_queue_count = otx2_nix_rx_queue_count, > - .rx_descriptor_done = otx2_nix_rx_descriptor_done, > - .rx_descriptor_status = otx2_nix_rx_descriptor_status, > - .tx_descriptor_status = otx2_nix_tx_descriptor_status, > .tx_done_cleanup = otx2_nix_tx_done_cleanup, > .set_queue_rate_limit = otx2_nix_tm_set_queue_rate_limit, > .pool_ops_supported = otx2_nix_pool_ops_supported, > @@ -2382,6 +2378,10 @@ otx2_eth_dev_init(struct rte_eth_dev *eth_dev) > int rc, max_entries; > > eth_dev->dev_ops = &otx2_eth_dev_ops; > + eth_dev->rx_descriptor_done = otx2_nix_rx_descriptor_done; > + eth_dev->rx_queue_count = otx2_nix_rx_queue_count; > + eth_dev->rx_descriptor_status = otx2_nix_rx_descriptor_status; > + eth_dev->tx_descriptor_status = otx2_nix_tx_descriptor_status; > > /* For secondary processes, the primary has done all the work */ > if (rte_eal_process_type() != RTE_PROC_PRIMARY) { > diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c > index 70d48e48ef..59f1746ee9 100644 > --- a/drivers/net/qede/qede_ethdev.c > +++ b/drivers/net/qede/qede_ethdev.c > @@ -2386,7 +2386,6 @@ static const struct eth_dev_ops qede_eth_dev_ops = { > .dev_infos_get = qede_dev_info_get, > .rx_queue_setup = qede_rx_queue_setup, > .rx_queue_release = qede_rx_queue_release, > - .rx_descriptor_status = qede_rx_descriptor_status, > .tx_queue_setup = qede_tx_queue_setup, > .tx_queue_release = qede_tx_queue_release, > .dev_start = qede_dev_start, > @@ -2431,7 +2430,6 @@ static const struct eth_dev_ops qede_eth_vf_dev_ops = { > .dev_infos_get = qede_dev_info_get, > .rx_queue_setup = qede_rx_queue_setup, > .rx_queue_release = qede_rx_queue_release, > - .rx_descriptor_status = qede_rx_descriptor_status, > .tx_queue_setup = qede_tx_queue_setup, > .tx_queue_release = qede_tx_queue_release, > .dev_start = qede_dev_start, > @@ -2670,6 +2668,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) > } > > eth_dev->dev_ops = (is_vf) ? &qede_eth_vf_dev_ops : &qede_eth_dev_ops; > + eth_dev->rx_descriptor_status = qede_rx_descriptor_status; > > adapter->num_tx_queues = 0; > adapter->num_rx_queues = 0; > diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c > index acee3e48e4..1a58e0df84 100644 > --- a/drivers/net/sfc/sfc_ethdev.c > +++ b/drivers/net/sfc/sfc_ethdev.c > @@ -1819,10 +1819,6 @@ static const struct eth_dev_ops sfc_eth_dev_ops = { > .tx_queue_stop = sfc_tx_queue_stop, > .rx_queue_setup = sfc_rx_queue_setup, > .rx_queue_release = sfc_rx_queue_release, > - .rx_queue_count = sfc_rx_queue_count, > - .rx_descriptor_done = sfc_rx_descriptor_done, > - .rx_descriptor_status = sfc_rx_descriptor_status, > - .tx_descriptor_status = sfc_tx_descriptor_status, > .rx_queue_intr_enable = sfc_rx_queue_intr_enable, > .rx_queue_intr_disable = sfc_rx_queue_intr_disable, > .tx_queue_setup = sfc_tx_queue_setup, > @@ -1977,6 +1973,10 @@ sfc_eth_dev_set_ops(struct rte_eth_dev *dev) > dev->tx_pkt_prepare = dp_tx->pkt_prepare; > dev->tx_pkt_burst = dp_tx->pkt_burst; > > + dev->rx_queue_count = sfc_rx_queue_count; > + dev->rx_descriptor_done = sfc_rx_descriptor_done; > + dev->rx_descriptor_status = sfc_rx_descriptor_status; > + dev->tx_descriptor_status = sfc_tx_descriptor_status; > dev->dev_ops = &sfc_eth_dev_ops; > > return 0; > @@ -2017,10 +2017,6 @@ sfc_eth_dev_clear_ops(struct rte_eth_dev *dev) > > static const struct eth_dev_ops sfc_eth_dev_secondary_ops = { > .dev_supported_ptypes_get = sfc_dev_supported_ptypes_get, > - .rx_queue_count = sfc_rx_queue_count, > - .rx_descriptor_done = sfc_rx_descriptor_done, > - .rx_descriptor_status = sfc_rx_descriptor_status, > - .tx_descriptor_status = sfc_tx_descriptor_status, > .reta_query = sfc_dev_rss_reta_query, > .rss_hash_conf_get = sfc_dev_rss_hash_conf_get, > .rxq_info_get = sfc_rx_queue_info_get, > @@ -2085,6 +2081,10 @@ sfc_eth_dev_secondary_init(struct rte_eth_dev *dev, uint32_t logtype_main) > dev->rx_pkt_burst = dp_rx->pkt_burst; > dev->tx_pkt_prepare = dp_tx->pkt_prepare; > dev->tx_pkt_burst = dp_tx->pkt_burst; > + dev->rx_queue_count = sfc_rx_queue_count; > + dev->rx_descriptor_done = sfc_rx_descriptor_done; > + dev->rx_descriptor_status = sfc_rx_descriptor_status; > + dev->tx_descriptor_status = sfc_tx_descriptor_status; > dev->dev_ops = &sfc_eth_dev_secondary_ops; > > return 0; > diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c > index d955a7ee23..959c8e4ddc 100644 > --- a/drivers/net/thunderx/nicvf_ethdev.c > +++ b/drivers/net/thunderx/nicvf_ethdev.c > @@ -2029,7 +2029,6 @@ static const struct eth_dev_ops nicvf_eth_dev_ops = { > .tx_queue_stop = nicvf_dev_tx_queue_stop, > .rx_queue_setup = nicvf_dev_rx_queue_setup, > .rx_queue_release = nicvf_dev_rx_queue_release, > - .rx_queue_count = nicvf_dev_rx_queue_count, > .tx_queue_setup = nicvf_dev_tx_queue_setup, > .tx_queue_release = nicvf_dev_tx_queue_release, > .dev_set_link_up = nicvf_dev_set_link_up, > @@ -2134,6 +2133,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev) > PMD_INIT_FUNC_TRACE(); > > eth_dev->dev_ops = &nicvf_eth_dev_ops; > + eth_dev->rx_queue_count = nicvf_dev_rx_queue_count; > > /* For secondary processes, the primary has done all the work */ > if (rte_eal_process_type() != RTE_PROC_PRIMARY) { > diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c > index e55278af69..fa365605ef 100644 > --- a/drivers/net/vhost/rte_eth_vhost.c > +++ b/drivers/net/vhost/rte_eth_vhost.c > @@ -1385,7 +1385,6 @@ static const struct eth_dev_ops ops = { > .rx_queue_release = eth_queue_release, > .tx_queue_release = eth_queue_release, > .tx_done_cleanup = eth_tx_done_cleanup, > - .rx_queue_count = eth_rx_queue_count, > .link_update = eth_link_update, > .stats_get = eth_stats_get, > .stats_reset = eth_stats_reset, > @@ -1447,6 +1446,7 @@ eth_dev_vhost_create(struct rte_vdev_device *dev, char *iface_name, > data->all_multicast = 1; > > eth_dev->dev_ops = &ops; > + eth_dev->rx_queue_count = eth_rx_queue_count; > > /* finally assign rx and tx ops */ > eth_dev->rx_pkt_burst = eth_vhost_rx; > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c > index dc0093bdf0..4f2fa0d943 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -920,7 +920,6 @@ static const struct eth_dev_ops virtio_eth_dev_ops = { > .rx_queue_intr_enable = virtio_dev_rx_queue_intr_enable, > .rx_queue_intr_disable = virtio_dev_rx_queue_intr_disable, > .rx_queue_release = virtio_dev_queue_release, > - .rx_descriptor_done = virtio_dev_rx_queue_done, > .tx_queue_setup = virtio_dev_tx_queue_setup, > .tx_queue_release = virtio_dev_queue_release, > /* collect stats per queue */ > @@ -1903,6 +1902,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > } > > eth_dev->dev_ops = &virtio_eth_dev_ops; > + eth_dev->rx_descriptor_done = virtio_dev_rx_queue_done; > > if (rte_eal_process_type() == RTE_PROC_SECONDARY) { > if (!hw->virtio_user_dev) { > diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h > index eb6cd01f8d..b6f26a513b 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -4545,11 +4545,11 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id) > > RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL); > dev = &rte_eth_devices[port_id]; > - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_queue_count, -ENOTSUP); > + RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_queue_count, -ENOTSUP); > if (queue_id >= dev->data->nb_rx_queues) > return -EINVAL; > > - return (int)(*dev->dev_ops->rx_queue_count)(dev, queue_id); > + return (int)(*dev->rx_queue_count)(dev, queue_id); > } > > /** > @@ -4573,9 +4573,8 @@ rte_eth_rx_descriptor_done(uint16_t port_id, uint16_t queue_id, uint16_t offset) > { > struct rte_eth_dev *dev = &rte_eth_devices[port_id]; > RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); > - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_descriptor_done, -ENOTSUP); > - return (*dev->dev_ops->rx_descriptor_done)( \ > - dev->data->rx_queues[queue_id], offset); > + RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_descriptor_done, -ENOTSUP); > + return (*dev->rx_descriptor_done)(dev->data->rx_queues[queue_id], offset); > } > > #define RTE_ETH_RX_DESC_AVAIL 0 /**< Desc available for hw. */ > @@ -4630,10 +4629,10 @@ rte_eth_rx_descriptor_status(uint16_t port_id, uint16_t queue_id, > if (queue_id >= dev->data->nb_rx_queues) > return -ENODEV; > #endif > - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_descriptor_status, -ENOTSUP); > + RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_descriptor_status, -ENOTSUP); > rxq = dev->data->rx_queues[queue_id]; > > - return (*dev->dev_ops->rx_descriptor_status)(rxq, offset); > + return (*dev->rx_descriptor_status)(rxq, offset); > } > > #define RTE_ETH_TX_DESC_FULL 0 /**< Desc filled for hw, waiting xmit. */ > @@ -4687,10 +4686,10 @@ static inline int rte_eth_tx_descriptor_status(uint16_t port_id, > if (queue_id >= dev->data->nb_tx_queues) > return -ENODEV; > #endif > - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->tx_descriptor_status, -ENOTSUP); > + RTE_FUNC_PTR_OR_ERR_RET(*dev->tx_descriptor_status, -ENOTSUP); > txq = dev->data->tx_queues[queue_id]; > > - return (*dev->dev_ops->tx_descriptor_status)(txq, offset); > + return (*dev->tx_descriptor_status)(txq, offset); > } > > /** > diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h > index 32407dd418..8ed827475f 100644 > --- a/lib/librte_ethdev/rte_ethdev_core.h > +++ b/lib/librte_ethdev/rte_ethdev_core.h > @@ -660,13 +660,6 @@ struct eth_dev_ops { > eth_queue_stop_t tx_queue_stop; /**< Stop TX for a queue. */ > eth_rx_queue_setup_t rx_queue_setup;/**< Set up device RX queue. */ > eth_queue_release_t rx_queue_release; /**< Release RX queue. */ > - eth_rx_queue_count_t rx_queue_count; > - /**< Get the number of used RX descriptors. */ > - eth_rx_descriptor_done_t rx_descriptor_done; /**< Check rxd DD bit. */ > - eth_rx_descriptor_status_t rx_descriptor_status; > - /**< Check the status of a Rx descriptor. */ > - eth_tx_descriptor_status_t tx_descriptor_status; > - /**< Check the status of a Tx descriptor. */ > /* > * Static inline functions use functions ABOVE this comment. > * New dev_ops functions should be added BELOW to avoid breaking ABI. > @@ -782,6 +775,12 @@ struct rte_eth_dev { > eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function. */ > eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function. */ > eth_tx_prep_t tx_pkt_prepare; /**< Pointer to PMD transmit prepare function. */ > + > + eth_rx_queue_count_t rx_queue_count; /**< Get the number of used RX descriptors. */ > + eth_rx_descriptor_done_t rx_descriptor_done; /**< Check rxd DD bit. */ > + eth_rx_descriptor_status_t rx_descriptor_status; /**< Check the status of a Rx descriptor. */ > + eth_tx_descriptor_status_t tx_descriptor_status; /**< Check the status of a Tx descriptor. */ > + > /** > * Next two fields are per-device data but *data is shared between > * primary and secondary processes and *process_private is per-process
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index edd21c4d8e..dd8c9555b0 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -646,9 +646,9 @@ used, status can be "Available", "Done" or "Unavailable". When ``rx_descriptor_done`` is used, status can be "DD bit is set" or "DD bit is not set". -* **[implements] eth_dev_ops**: ``rx_descriptor_status``. +* **[implements] rte_eth_dev**: ``rx_descriptor_status``. * **[related] API**: ``rte_eth_rx_descriptor_status()``. -* **[implements] eth_dev_ops**: ``rx_descriptor_done``. +* **[implements] rte_eth_dev**: ``rx_descriptor_done``. * **[related] API**: ``rte_eth_rx_descriptor_done()``. @@ -660,7 +660,7 @@ Tx descriptor status Supports checking the status of a Tx descriptor. Status can be "Full", "Done" or "Unavailable." -* **[implements] eth_dev_ops**: ``tx_descriptor_status``. +* **[implements] rte_eth_dev**: ``tx_descriptor_status``. * **[related] API**: ``rte_eth_tx_descriptor_status()``. diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index a7d57b001d..ff7242012b 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -102,6 +102,15 @@ ABI Changes Also, make sure to start the actual text at the margin. ======================================================= +* ``ethdev`` changes + + * Following device operation function pointers moved from ``struct eth_dev_ops`` to ``struct rte_eth_dev``: + + * ``eth_rx_queue_count_t rx_queue_count;`` + * ``eth_rx_descriptor_done_t rx_descriptor_done;`` + * ``eth_rx_descriptor_status_t rx_descriptor_status;`` + * ``eth_tx_descriptor_status_t tx_descriptor_status;`` + Known Issues ------------ diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c index b32ccd8677..ce7f6e4803 100644 --- a/drivers/net/ark/ark_ethdev.c +++ b/drivers/net/ark/ark_ethdev.c @@ -132,7 +132,6 @@ static const struct eth_dev_ops ark_eth_dev_ops = { .dev_infos_get = eth_ark_dev_info_get, .rx_queue_setup = eth_ark_dev_rx_queue_setup, - .rx_queue_count = eth_ark_dev_rx_queue_count, .tx_queue_setup = eth_ark_tx_queue_setup, .link_update = eth_ark_dev_link_update, @@ -318,6 +317,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev) return -1; dev->dev_ops = &ark_eth_dev_ops; + dev->rx_queue_count = eth_ark_dev_rx_queue_count; dev->data->mac_addrs = rte_zmalloc("ark", RTE_ETHER_ADDR_LEN, 0); if (!dev->data->mac_addrs) { diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c index d3b00ab295..540b106045 100644 --- a/drivers/net/atlantic/atl_ethdev.c +++ b/drivers/net/atlantic/atl_ethdev.c @@ -313,10 +313,6 @@ static const struct eth_dev_ops atl_eth_dev_ops = { .rx_queue_intr_enable = atl_dev_rx_queue_intr_enable, .rx_queue_intr_disable = atl_dev_rx_queue_intr_disable, - .rx_queue_count = atl_rx_queue_count, - .rx_descriptor_status = atl_dev_rx_descriptor_status, - .tx_descriptor_status = atl_dev_tx_descriptor_status, - /* EEPROM */ .get_eeprom_length = atl_dev_get_eeprom_length, .get_eeprom = atl_dev_get_eeprom, @@ -373,6 +369,11 @@ eth_atl_dev_init(struct rte_eth_dev *eth_dev) PMD_INIT_FUNC_TRACE(); eth_dev->dev_ops = &atl_eth_dev_ops; + + eth_dev->rx_queue_count = atl_rx_queue_count; + eth_dev->rx_descriptor_status = atl_dev_rx_descriptor_status; + eth_dev->tx_descriptor_status = atl_dev_tx_descriptor_status; + eth_dev->rx_pkt_burst = &atl_recv_pkts; eth_dev->tx_pkt_burst = &atl_xmit_pkts; eth_dev->tx_pkt_prepare = &atl_prep_pkts; diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c index 0c25739f82..02ceb95754 100644 --- a/drivers/net/axgbe/axgbe_ethdev.c +++ b/drivers/net/axgbe/axgbe_ethdev.c @@ -224,8 +224,6 @@ static const struct eth_dev_ops axgbe_eth_dev_ops = { .rxq_info_get = axgbe_rxq_info_get, .txq_info_get = axgbe_txq_info_get, .dev_supported_ptypes_get = axgbe_dev_supported_ptypes_get, - .rx_descriptor_status = axgbe_dev_rx_descriptor_status, - .tx_descriptor_status = axgbe_dev_tx_descriptor_status, .mtu_set = axgb_mtu_set, }; @@ -1632,6 +1630,9 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev) eth_dev->dev_ops = &axgbe_eth_dev_ops; + eth_dev->rx_descriptor_status = axgbe_dev_rx_descriptor_status; + eth_dev->tx_descriptor_status = axgbe_dev_tx_descriptor_status; + /* * For secondary processes, we don't initialise any further as primary * has already done this work. diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 75d055be00..4d224bfa04 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -4246,9 +4246,6 @@ static const struct eth_dev_ops bnxt_dev_ops = { .dev_led_off = bnxt_dev_led_off_op, .xstats_get_by_id = bnxt_dev_xstats_get_by_id_op, .xstats_get_names_by_id = bnxt_dev_xstats_get_names_by_id_op, - .rx_queue_count = bnxt_rx_queue_count_op, - .rx_descriptor_status = bnxt_rx_descriptor_status_op, - .tx_descriptor_status = bnxt_tx_descriptor_status_op, .rx_queue_start = bnxt_rx_queue_start, .rx_queue_stop = bnxt_rx_queue_stop, .tx_queue_start = bnxt_tx_queue_start, @@ -5681,6 +5678,9 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused) PMD_DRV_LOG(INFO, "%s\n", bnxt_version); eth_dev->dev_ops = &bnxt_dev_ops; + eth_dev->rx_queue_count = bnxt_rx_queue_count_op; + eth_dev->rx_descriptor_status = bnxt_rx_descriptor_status_op; + eth_dev->tx_descriptor_status = bnxt_tx_descriptor_status_op; eth_dev->rx_pkt_burst = &bnxt_recv_pkts; eth_dev->tx_pkt_burst = &bnxt_xmit_pkts; diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index b0f2023e60..e2c3fd0368 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -1421,7 +1421,6 @@ static struct eth_dev_ops dpaa_devops = { .tx_queue_setup = dpaa_eth_tx_queue_setup, .rx_queue_release = dpaa_eth_rx_queue_release, .tx_queue_release = dpaa_eth_tx_queue_release, - .rx_queue_count = dpaa_dev_rx_queue_count, .rx_burst_mode_get = dpaa_dev_rx_burst_mode_get, .tx_burst_mode_get = dpaa_dev_tx_burst_mode_get, .rxq_info_get = dpaa_rxq_info_get, @@ -1917,6 +1916,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev) /* Populate ethdev structure */ eth_dev->dev_ops = &dpaa_devops; + eth_dev->rx_queue_count = dpaa_dev_rx_queue_count; eth_dev->rx_pkt_burst = dpaa_eth_queue_rx; eth_dev->tx_pkt_burst = dpaa_eth_tx_drop_all; diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 02c254846c..38cf0ab71c 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -2331,7 +2331,6 @@ static struct eth_dev_ops dpaa2_ethdev_ops = { .tx_queue_release = dpaa2_dev_tx_queue_release, .rx_burst_mode_get = dpaa2_dev_rx_burst_mode_get, .tx_burst_mode_get = dpaa2_dev_tx_burst_mode_get, - .rx_queue_count = dpaa2_dev_rx_queue_count, .flow_ctrl_get = dpaa2_flow_ctrl_get, .flow_ctrl_set = dpaa2_flow_ctrl_set, .mac_addr_add = dpaa2_dev_add_mac_addr, @@ -2486,6 +2485,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev) * plugged. */ eth_dev->dev_ops = &dpaa2_ethdev_ops; + eth_dev->rx_queue_count = dpaa2_dev_rx_queue_count; if (dpaa2_get_devargs(dev->devargs, DRIVER_LOOPBACK_MODE)) eth_dev->rx_pkt_burst = dpaa2_dev_loopback_rx; else if (dpaa2_get_devargs(dev->devargs, diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c index 902b1cdca0..82766da882 100644 --- a/drivers/net/e1000/em_ethdev.c +++ b/drivers/net/e1000/em_ethdev.c @@ -176,10 +176,6 @@ static const struct eth_dev_ops eth_em_ops = { .vlan_offload_set = eth_em_vlan_offload_set, .rx_queue_setup = eth_em_rx_queue_setup, .rx_queue_release = eth_em_rx_queue_release, - .rx_queue_count = eth_em_rx_queue_count, - .rx_descriptor_done = eth_em_rx_descriptor_done, - .rx_descriptor_status = eth_em_rx_descriptor_status, - .tx_descriptor_status = eth_em_tx_descriptor_status, .tx_queue_setup = eth_em_tx_queue_setup, .tx_queue_release = eth_em_tx_queue_release, .rx_queue_intr_enable = eth_em_rx_queue_intr_enable, @@ -250,6 +246,10 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev) E1000_DEV_PRIVATE_TO_VFTA(eth_dev->data->dev_private); eth_dev->dev_ops = ð_em_ops; + eth_dev->rx_queue_count = eth_em_rx_queue_count; + eth_dev->rx_descriptor_done = eth_em_rx_descriptor_done; + eth_dev->rx_descriptor_status = eth_em_rx_descriptor_status; + eth_dev->tx_descriptor_status = eth_em_tx_descriptor_status; eth_dev->rx_pkt_burst = (eth_rx_burst_t)ð_em_recv_pkts; eth_dev->tx_pkt_burst = (eth_tx_burst_t)ð_em_xmit_pkts; eth_dev->tx_pkt_prepare = (eth_tx_prep_t)ð_em_prep_pkts; diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c index a5551e8175..fe0cea88c2 100644 --- a/drivers/net/e1000/igb_ethdev.c +++ b/drivers/net/e1000/igb_ethdev.c @@ -380,10 +380,6 @@ static const struct eth_dev_ops eth_igb_ops = { .rx_queue_intr_enable = eth_igb_rx_queue_intr_enable, .rx_queue_intr_disable = eth_igb_rx_queue_intr_disable, .rx_queue_release = eth_igb_rx_queue_release, - .rx_queue_count = eth_igb_rx_queue_count, - .rx_descriptor_done = eth_igb_rx_descriptor_done, - .rx_descriptor_status = eth_igb_rx_descriptor_status, - .tx_descriptor_status = eth_igb_tx_descriptor_status, .tx_queue_setup = eth_igb_tx_queue_setup, .tx_queue_release = eth_igb_tx_queue_release, .tx_done_cleanup = eth_igb_tx_done_cleanup, @@ -441,9 +437,6 @@ static const struct eth_dev_ops igbvf_eth_dev_ops = { .dev_supported_ptypes_get = eth_igb_supported_ptypes_get, .rx_queue_setup = eth_igb_rx_queue_setup, .rx_queue_release = eth_igb_rx_queue_release, - .rx_descriptor_done = eth_igb_rx_descriptor_done, - .rx_descriptor_status = eth_igb_rx_descriptor_status, - .tx_descriptor_status = eth_igb_tx_descriptor_status, .tx_queue_setup = eth_igb_tx_queue_setup, .tx_queue_release = eth_igb_tx_queue_release, .tx_done_cleanup = eth_igb_tx_done_cleanup, @@ -754,6 +747,10 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev) uint32_t ctrl_ext; eth_dev->dev_ops = ð_igb_ops; + eth_dev->rx_queue_count = eth_igb_rx_queue_count; + eth_dev->rx_descriptor_done = eth_igb_rx_descriptor_done; + eth_dev->rx_descriptor_status = eth_igb_rx_descriptor_status; + eth_dev->tx_descriptor_status = eth_igb_tx_descriptor_status; eth_dev->rx_pkt_burst = ð_igb_recv_pkts; eth_dev->tx_pkt_burst = ð_igb_xmit_pkts; eth_dev->tx_pkt_prepare = ð_igb_prep_pkts; @@ -949,6 +946,9 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev) PMD_INIT_FUNC_TRACE(); eth_dev->dev_ops = &igbvf_eth_dev_ops; + eth_dev->rx_descriptor_done = eth_igb_rx_descriptor_done; + eth_dev->rx_descriptor_status = eth_igb_rx_descriptor_status; + eth_dev->tx_descriptor_status = eth_igb_tx_descriptor_status; eth_dev->rx_pkt_burst = ð_igb_recv_pkts; eth_dev->tx_pkt_burst = ð_igb_xmit_pkts; eth_dev->tx_pkt_prepare = ð_igb_prep_pkts; diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index ca75919ee2..2cffa3aa2d 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -1141,8 +1141,6 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = { .tx_queue_stop = enicpmd_dev_tx_queue_stop, .rx_queue_setup = enicpmd_dev_rx_queue_setup, .rx_queue_release = enicpmd_dev_rx_queue_release, - .rx_queue_count = enicpmd_dev_rx_queue_count, - .rx_descriptor_done = NULL, .tx_queue_setup = enicpmd_dev_tx_queue_setup, .tx_queue_release = enicpmd_dev_tx_queue_release, .rx_queue_intr_enable = enicpmd_dev_rx_queue_intr_enable, @@ -1279,6 +1277,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev) ENICPMD_FUNC_TRACE(); eth_dev->dev_ops = &enicpmd_eth_dev_ops; + eth_dev->rx_queue_count = enicpmd_dev_rx_queue_count; eth_dev->rx_pkt_burst = &enic_recv_pkts; eth_dev->tx_pkt_burst = &enic_xmit_pkts; eth_dev->tx_pkt_prepare = &enic_prep_pkts; diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index fd927923da..e6043e1455 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c @@ -2855,10 +2855,6 @@ static const struct eth_dev_ops fm10k_eth_dev_ops = { .rx_queue_release = fm10k_rx_queue_release, .tx_queue_setup = fm10k_tx_queue_setup, .tx_queue_release = fm10k_tx_queue_release, - .rx_queue_count = fm10k_dev_rx_queue_count, - .rx_descriptor_done = fm10k_dev_rx_descriptor_done, - .rx_descriptor_status = fm10k_dev_rx_descriptor_status, - .tx_descriptor_status = fm10k_dev_tx_descriptor_status, .rx_queue_intr_enable = fm10k_dev_rx_queue_intr_enable, .rx_queue_intr_disable = fm10k_dev_rx_queue_intr_disable, .reta_update = fm10k_reta_update, @@ -3055,6 +3051,10 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); dev->dev_ops = &fm10k_eth_dev_ops; + dev->rx_queue_count = fm10k_dev_rx_queue_count; + dev->rx_descriptor_done = fm10k_dev_rx_descriptor_done; + dev->rx_descriptor_status = fm10k_dev_rx_descriptor_status; + dev->tx_descriptor_status = fm10k_dev_tx_descriptor_status; dev->rx_pkt_burst = &fm10k_recv_pkts; dev->tx_pkt_burst = &fm10k_xmit_pkts; dev->tx_pkt_prepare = &fm10k_prep_pkts; diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 841447228a..80efd06cd9 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -474,10 +474,6 @@ static const struct eth_dev_ops i40e_eth_dev_ops = { .rx_queue_intr_enable = i40e_dev_rx_queue_intr_enable, .rx_queue_intr_disable = i40e_dev_rx_queue_intr_disable, .rx_queue_release = i40e_dev_rx_queue_release, - .rx_queue_count = i40e_dev_rx_queue_count, - .rx_descriptor_done = i40e_dev_rx_descriptor_done, - .rx_descriptor_status = i40e_dev_rx_descriptor_status, - .tx_descriptor_status = i40e_dev_tx_descriptor_status, .tx_queue_setup = i40e_dev_tx_queue_setup, .tx_queue_release = i40e_dev_tx_queue_release, .dev_led_on = i40e_dev_led_on, @@ -1448,6 +1444,10 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) PMD_INIT_FUNC_TRACE(); dev->dev_ops = &i40e_eth_dev_ops; + dev->rx_queue_count = i40e_dev_rx_queue_count; + dev->rx_descriptor_done = i40e_dev_rx_descriptor_done; + dev->rx_descriptor_status = i40e_dev_rx_descriptor_status; + dev->tx_descriptor_status = i40e_dev_tx_descriptor_status; dev->rx_pkt_burst = i40e_recv_pkts; dev->tx_pkt_burst = i40e_xmit_pkts; dev->tx_pkt_prepare = i40e_prep_pkts; diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index b755350cd2..be4b28fa45 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -199,12 +199,8 @@ static const struct eth_dev_ops i40evf_eth_dev_ops = { .rx_queue_release = i40e_dev_rx_queue_release, .rx_queue_intr_enable = i40evf_dev_rx_queue_intr_enable, .rx_queue_intr_disable = i40evf_dev_rx_queue_intr_disable, - .rx_descriptor_done = i40e_dev_rx_descriptor_done, - .rx_descriptor_status = i40e_dev_rx_descriptor_status, - .tx_descriptor_status = i40e_dev_tx_descriptor_status, .tx_queue_setup = i40e_dev_tx_queue_setup, .tx_queue_release = i40e_dev_tx_queue_release, - .rx_queue_count = i40e_dev_rx_queue_count, .rxq_info_get = i40e_rxq_info_get, .txq_info_get = i40e_txq_info_get, .mac_addr_add = i40evf_add_mac_addr, @@ -1561,6 +1557,10 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) /* assign ops func pointer */ eth_dev->dev_ops = &i40evf_eth_dev_ops; + eth_dev->rx_queue_count = i40e_dev_rx_queue_count; + eth_dev->rx_descriptor_done = i40e_dev_rx_descriptor_done; + eth_dev->rx_descriptor_status = i40e_dev_rx_descriptor_status; + eth_dev->tx_descriptor_status = i40e_dev_tx_descriptor_status; eth_dev->rx_pkt_burst = &i40e_recv_pkts; eth_dev->tx_pkt_burst = &i40e_xmit_pkts; diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 8e1d8a8d3e..e1ff38e8be 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -117,9 +117,6 @@ static const struct eth_dev_ops iavf_eth_dev_ops = { .rss_hash_conf_get = iavf_dev_rss_hash_conf_get, .rxq_info_get = iavf_dev_rxq_info_get, .txq_info_get = iavf_dev_txq_info_get, - .rx_queue_count = iavf_dev_rxq_count, - .rx_descriptor_status = iavf_dev_rx_desc_status, - .tx_descriptor_status = iavf_dev_tx_desc_status, .mtu_set = iavf_dev_mtu_set, .rx_queue_intr_enable = iavf_dev_rx_queue_intr_enable, .rx_queue_intr_disable = iavf_dev_rx_queue_intr_disable, @@ -1383,6 +1380,9 @@ iavf_dev_init(struct rte_eth_dev *eth_dev) /* assign ops func pointer */ eth_dev->dev_ops = &iavf_eth_dev_ops; + eth_dev->rx_queue_count = iavf_dev_rxq_count; + eth_dev->rx_descriptor_status = iavf_dev_rx_desc_status; + eth_dev->tx_descriptor_status = iavf_dev_tx_desc_status; eth_dev->rx_pkt_burst = &iavf_recv_pkts; eth_dev->tx_pkt_burst = &iavf_xmit_pkts; eth_dev->tx_pkt_prepare = &iavf_prep_pkts; diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index c5dac2e328..c8b16c7f87 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -205,9 +205,6 @@ static const struct eth_dev_ops ice_eth_dev_ops = { .tx_burst_mode_get = ice_tx_burst_mode_get, .get_eeprom_length = ice_get_eeprom_length, .get_eeprom = ice_get_eeprom, - .rx_queue_count = ice_rx_queue_count, - .rx_descriptor_status = ice_rx_descriptor_status, - .tx_descriptor_status = ice_tx_descriptor_status, .stats_get = ice_stats_get, .stats_reset = ice_stats_reset, .xstats_get = ice_xstats_get, @@ -2163,6 +2160,9 @@ ice_dev_init(struct rte_eth_dev *dev) int ret; dev->dev_ops = &ice_eth_dev_ops; + dev->rx_queue_count = ice_rx_queue_count; + dev->rx_descriptor_status = ice_rx_descriptor_status; + dev->tx_descriptor_status = ice_tx_descriptor_status; dev->rx_pkt_burst = ice_recv_pkts; dev->tx_pkt_burst = ice_xmit_pkts; dev->tx_pkt_prepare = ice_prep_pkts; diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c index 6ab3ee909d..aa37c11861 100644 --- a/drivers/net/igc/igc_ethdev.c +++ b/drivers/net/igc/igc_ethdev.c @@ -272,10 +272,6 @@ static const struct eth_dev_ops eth_igc_ops = { .rx_queue_setup = eth_igc_rx_queue_setup, .rx_queue_release = eth_igc_rx_queue_release, - .rx_queue_count = eth_igc_rx_queue_count, - .rx_descriptor_done = eth_igc_rx_descriptor_done, - .rx_descriptor_status = eth_igc_rx_descriptor_status, - .tx_descriptor_status = eth_igc_tx_descriptor_status, .tx_queue_setup = eth_igc_tx_queue_setup, .tx_queue_release = eth_igc_tx_queue_release, .tx_done_cleanup = eth_igc_tx_done_cleanup, @@ -1227,6 +1223,10 @@ eth_igc_dev_init(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); dev->dev_ops = ð_igc_ops; + dev->rx_descriptor_done = eth_igc_rx_descriptor_done; + dev->rx_queue_count = eth_igc_rx_queue_count; + dev->rx_descriptor_status = eth_igc_rx_descriptor_status; + dev->tx_descriptor_status = eth_igc_tx_descriptor_status; /* * for secondary processes, we don't initialize any further as primary diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index d9582473a4..337ce90fbf 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -545,10 +545,6 @@ static const struct eth_dev_ops ixgbe_eth_dev_ops = { .rx_queue_intr_enable = ixgbe_dev_rx_queue_intr_enable, .rx_queue_intr_disable = ixgbe_dev_rx_queue_intr_disable, .rx_queue_release = ixgbe_dev_rx_queue_release, - .rx_queue_count = ixgbe_dev_rx_queue_count, - .rx_descriptor_done = ixgbe_dev_rx_descriptor_done, - .rx_descriptor_status = ixgbe_dev_rx_descriptor_status, - .tx_descriptor_status = ixgbe_dev_tx_descriptor_status, .tx_queue_setup = ixgbe_dev_tx_queue_setup, .tx_queue_release = ixgbe_dev_tx_queue_release, .dev_led_on = ixgbe_dev_led_on, @@ -622,9 +618,6 @@ static const struct eth_dev_ops ixgbevf_eth_dev_ops = { .vlan_offload_set = ixgbevf_vlan_offload_set, .rx_queue_setup = ixgbe_dev_rx_queue_setup, .rx_queue_release = ixgbe_dev_rx_queue_release, - .rx_descriptor_done = ixgbe_dev_rx_descriptor_done, - .rx_descriptor_status = ixgbe_dev_rx_descriptor_status, - .tx_descriptor_status = ixgbe_dev_tx_descriptor_status, .tx_queue_setup = ixgbe_dev_tx_queue_setup, .tx_queue_release = ixgbe_dev_tx_queue_release, .rx_queue_intr_enable = ixgbevf_dev_rx_queue_intr_enable, @@ -1091,6 +1084,10 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused) ixgbe_dev_macsec_setting_reset(eth_dev); eth_dev->dev_ops = &ixgbe_eth_dev_ops; + eth_dev->rx_queue_count = ixgbe_dev_rx_queue_count; + eth_dev->rx_descriptor_done = ixgbe_dev_rx_descriptor_done; + eth_dev->rx_descriptor_status = ixgbe_dev_rx_descriptor_status; + eth_dev->tx_descriptor_status = ixgbe_dev_tx_descriptor_status; eth_dev->rx_pkt_burst = &ixgbe_recv_pkts; eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts; eth_dev->tx_pkt_prepare = &ixgbe_prep_pkts; @@ -1570,6 +1567,9 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev) PMD_INIT_FUNC_TRACE(); eth_dev->dev_ops = &ixgbevf_eth_dev_ops; + eth_dev->rx_descriptor_done = ixgbe_dev_rx_descriptor_done; + eth_dev->rx_descriptor_status = ixgbe_dev_rx_descriptor_status; + eth_dev->tx_descriptor_status = ixgbe_dev_tx_descriptor_status; eth_dev->rx_pkt_burst = &ixgbe_recv_pkts; eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts; diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index bf1f82ba67..ec3cc4000e 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -601,6 +601,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, } eth_dev->device = dpdk_dev; eth_dev->dev_ops = &mlx5_os_dev_sec_ops; + eth_dev->rx_descriptor_status = mlx5_rx_descriptor_status; + eth_dev->tx_descriptor_status = mlx5_tx_descriptor_status; err = mlx5_proc_priv_init(eth_dev); if (err) return NULL; @@ -1208,6 +1210,9 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, eth_dev->rx_pkt_burst = removed_rx_burst; eth_dev->tx_pkt_burst = removed_tx_burst; eth_dev->dev_ops = &mlx5_os_dev_ops; + eth_dev->rx_descriptor_status = mlx5_rx_descriptor_status; + eth_dev->tx_descriptor_status = mlx5_tx_descriptor_status; + eth_dev->rx_queue_count = mlx5_rx_queue_count; /* Register MAC address. */ claim_zero(mlx5_mac_addr_add(eth_dev, &mac, 0, 0)); if (config->vf && config->vf_nl_en) @@ -2396,13 +2401,10 @@ const struct eth_dev_ops mlx5_os_dev_ops = { .rss_hash_update = mlx5_rss_hash_update, .rss_hash_conf_get = mlx5_rss_hash_conf_get, .filter_ctrl = mlx5_dev_filter_ctrl, - .rx_descriptor_status = mlx5_rx_descriptor_status, - .tx_descriptor_status = mlx5_tx_descriptor_status, .rxq_info_get = mlx5_rxq_info_get, .txq_info_get = mlx5_txq_info_get, .rx_burst_mode_get = mlx5_rx_burst_mode_get, .tx_burst_mode_get = mlx5_tx_burst_mode_get, - .rx_queue_count = mlx5_rx_queue_count, .rx_queue_intr_enable = mlx5_rx_intr_enable, .rx_queue_intr_disable = mlx5_rx_intr_disable, .is_removed = mlx5_is_removed, @@ -2427,8 +2429,6 @@ const struct eth_dev_ops mlx5_os_dev_sec_ops = { .rx_queue_stop = mlx5_rx_queue_stop, .tx_queue_start = mlx5_tx_queue_start, .tx_queue_stop = mlx5_tx_queue_stop, - .rx_descriptor_status = mlx5_rx_descriptor_status, - .tx_descriptor_status = mlx5_tx_descriptor_status, .rxq_info_get = mlx5_rxq_info_get, .txq_info_get = mlx5_txq_info_get, .rx_burst_mode_get = mlx5_rx_burst_mode_get, @@ -2480,8 +2480,6 @@ const struct eth_dev_ops mlx5_os_dev_ops_isolate = { .vlan_strip_queue_set = mlx5_vlan_strip_queue_set, .vlan_offload_set = mlx5_vlan_offload_set, .filter_ctrl = mlx5_dev_filter_ctrl, - .rx_descriptor_status = mlx5_rx_descriptor_status, - .tx_descriptor_status = mlx5_tx_descriptor_status, .rxq_info_get = mlx5_rxq_info_get, .txq_info_get = mlx5_txq_info_get, .rx_burst_mode_get = mlx5_rx_burst_mode_get, diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 4c29898203..eb55bd7f99 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -5138,6 +5138,10 @@ mlx5_flow_isolate(struct rte_eth_dev *dev, dev->dev_ops = &mlx5_os_dev_ops_isolate; else dev->dev_ops = &mlx5_os_dev_ops; + + dev->rx_descriptor_status = mlx5_rx_descriptor_status; + dev->tx_descriptor_status = mlx5_tx_descriptor_status; + return 0; } diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index fd91c0e491..229c1b9149 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -871,11 +871,8 @@ static const struct eth_dev_ops hn_eth_dev_ops = { .tx_queue_setup = hn_dev_tx_queue_setup, .tx_queue_release = hn_dev_tx_queue_release, .tx_done_cleanup = hn_dev_tx_done_cleanup, - .tx_descriptor_status = hn_dev_tx_descriptor_status, .rx_queue_setup = hn_dev_rx_queue_setup, .rx_queue_release = hn_dev_rx_queue_release, - .rx_queue_count = hn_dev_rx_queue_count, - .rx_descriptor_status = hn_dev_rx_queue_status, .link_update = hn_dev_link_update, .stats_get = hn_dev_stats_get, .stats_reset = hn_dev_stats_reset, @@ -936,6 +933,9 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) vmbus = container_of(device, struct rte_vmbus_device, device); eth_dev->dev_ops = &hn_eth_dev_ops; + eth_dev->rx_queue_count = hn_dev_rx_queue_count; + eth_dev->rx_descriptor_status = hn_dev_rx_queue_status; + eth_dev->tx_descriptor_status = hn_dev_tx_descriptor_status; eth_dev->tx_pkt_burst = &hn_xmit_pkts; eth_dev->rx_pkt_burst = &hn_recv_pkts; diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index 99946279db..c556dedab6 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -2701,7 +2701,6 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { .rss_hash_conf_get = nfp_net_rss_hash_conf_get, .rx_queue_setup = nfp_net_rx_queue_setup, .rx_queue_release = nfp_net_rx_queue_release, - .rx_queue_count = nfp_net_rx_queue_count, .tx_queue_setup = nfp_net_tx_queue_setup, .tx_queue_release = nfp_net_tx_queue_release, .rx_queue_intr_enable = nfp_rx_queue_intr_enable, @@ -2785,6 +2784,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) } eth_dev->dev_ops = &nfp_net_eth_dev_ops; + eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c index 33b72bd4db..c06e32f26b 100644 --- a/drivers/net/octeontx2/otx2_ethdev.c +++ b/drivers/net/octeontx2/otx2_ethdev.c @@ -2272,10 +2272,6 @@ static const struct eth_dev_ops otx2_eth_dev_ops = { .txq_info_get = otx2_nix_txq_info_get, .rx_burst_mode_get = otx2_rx_burst_mode_get, .tx_burst_mode_get = otx2_tx_burst_mode_get, - .rx_queue_count = otx2_nix_rx_queue_count, - .rx_descriptor_done = otx2_nix_rx_descriptor_done, - .rx_descriptor_status = otx2_nix_rx_descriptor_status, - .tx_descriptor_status = otx2_nix_tx_descriptor_status, .tx_done_cleanup = otx2_nix_tx_done_cleanup, .set_queue_rate_limit = otx2_nix_tm_set_queue_rate_limit, .pool_ops_supported = otx2_nix_pool_ops_supported, @@ -2382,6 +2378,10 @@ otx2_eth_dev_init(struct rte_eth_dev *eth_dev) int rc, max_entries; eth_dev->dev_ops = &otx2_eth_dev_ops; + eth_dev->rx_descriptor_done = otx2_nix_rx_descriptor_done; + eth_dev->rx_queue_count = otx2_nix_rx_queue_count; + eth_dev->rx_descriptor_status = otx2_nix_rx_descriptor_status; + eth_dev->tx_descriptor_status = otx2_nix_tx_descriptor_status; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) { diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index 70d48e48ef..59f1746ee9 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -2386,7 +2386,6 @@ static const struct eth_dev_ops qede_eth_dev_ops = { .dev_infos_get = qede_dev_info_get, .rx_queue_setup = qede_rx_queue_setup, .rx_queue_release = qede_rx_queue_release, - .rx_descriptor_status = qede_rx_descriptor_status, .tx_queue_setup = qede_tx_queue_setup, .tx_queue_release = qede_tx_queue_release, .dev_start = qede_dev_start, @@ -2431,7 +2430,6 @@ static const struct eth_dev_ops qede_eth_vf_dev_ops = { .dev_infos_get = qede_dev_info_get, .rx_queue_setup = qede_rx_queue_setup, .rx_queue_release = qede_rx_queue_release, - .rx_descriptor_status = qede_rx_descriptor_status, .tx_queue_setup = qede_tx_queue_setup, .tx_queue_release = qede_tx_queue_release, .dev_start = qede_dev_start, @@ -2670,6 +2668,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) } eth_dev->dev_ops = (is_vf) ? &qede_eth_vf_dev_ops : &qede_eth_dev_ops; + eth_dev->rx_descriptor_status = qede_rx_descriptor_status; adapter->num_tx_queues = 0; adapter->num_rx_queues = 0; diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index acee3e48e4..1a58e0df84 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -1819,10 +1819,6 @@ static const struct eth_dev_ops sfc_eth_dev_ops = { .tx_queue_stop = sfc_tx_queue_stop, .rx_queue_setup = sfc_rx_queue_setup, .rx_queue_release = sfc_rx_queue_release, - .rx_queue_count = sfc_rx_queue_count, - .rx_descriptor_done = sfc_rx_descriptor_done, - .rx_descriptor_status = sfc_rx_descriptor_status, - .tx_descriptor_status = sfc_tx_descriptor_status, .rx_queue_intr_enable = sfc_rx_queue_intr_enable, .rx_queue_intr_disable = sfc_rx_queue_intr_disable, .tx_queue_setup = sfc_tx_queue_setup, @@ -1977,6 +1973,10 @@ sfc_eth_dev_set_ops(struct rte_eth_dev *dev) dev->tx_pkt_prepare = dp_tx->pkt_prepare; dev->tx_pkt_burst = dp_tx->pkt_burst; + dev->rx_queue_count = sfc_rx_queue_count; + dev->rx_descriptor_done = sfc_rx_descriptor_done; + dev->rx_descriptor_status = sfc_rx_descriptor_status; + dev->tx_descriptor_status = sfc_tx_descriptor_status; dev->dev_ops = &sfc_eth_dev_ops; return 0; @@ -2017,10 +2017,6 @@ sfc_eth_dev_clear_ops(struct rte_eth_dev *dev) static const struct eth_dev_ops sfc_eth_dev_secondary_ops = { .dev_supported_ptypes_get = sfc_dev_supported_ptypes_get, - .rx_queue_count = sfc_rx_queue_count, - .rx_descriptor_done = sfc_rx_descriptor_done, - .rx_descriptor_status = sfc_rx_descriptor_status, - .tx_descriptor_status = sfc_tx_descriptor_status, .reta_query = sfc_dev_rss_reta_query, .rss_hash_conf_get = sfc_dev_rss_hash_conf_get, .rxq_info_get = sfc_rx_queue_info_get, @@ -2085,6 +2081,10 @@ sfc_eth_dev_secondary_init(struct rte_eth_dev *dev, uint32_t logtype_main) dev->rx_pkt_burst = dp_rx->pkt_burst; dev->tx_pkt_prepare = dp_tx->pkt_prepare; dev->tx_pkt_burst = dp_tx->pkt_burst; + dev->rx_queue_count = sfc_rx_queue_count; + dev->rx_descriptor_done = sfc_rx_descriptor_done; + dev->rx_descriptor_status = sfc_rx_descriptor_status; + dev->tx_descriptor_status = sfc_tx_descriptor_status; dev->dev_ops = &sfc_eth_dev_secondary_ops; return 0; diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index d955a7ee23..959c8e4ddc 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -2029,7 +2029,6 @@ static const struct eth_dev_ops nicvf_eth_dev_ops = { .tx_queue_stop = nicvf_dev_tx_queue_stop, .rx_queue_setup = nicvf_dev_rx_queue_setup, .rx_queue_release = nicvf_dev_rx_queue_release, - .rx_queue_count = nicvf_dev_rx_queue_count, .tx_queue_setup = nicvf_dev_tx_queue_setup, .tx_queue_release = nicvf_dev_tx_queue_release, .dev_set_link_up = nicvf_dev_set_link_up, @@ -2134,6 +2133,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev) PMD_INIT_FUNC_TRACE(); eth_dev->dev_ops = &nicvf_eth_dev_ops; + eth_dev->rx_queue_count = nicvf_dev_rx_queue_count; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) { diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c index e55278af69..fa365605ef 100644 --- a/drivers/net/vhost/rte_eth_vhost.c +++ b/drivers/net/vhost/rte_eth_vhost.c @@ -1385,7 +1385,6 @@ static const struct eth_dev_ops ops = { .rx_queue_release = eth_queue_release, .tx_queue_release = eth_queue_release, .tx_done_cleanup = eth_tx_done_cleanup, - .rx_queue_count = eth_rx_queue_count, .link_update = eth_link_update, .stats_get = eth_stats_get, .stats_reset = eth_stats_reset, @@ -1447,6 +1446,7 @@ eth_dev_vhost_create(struct rte_vdev_device *dev, char *iface_name, data->all_multicast = 1; eth_dev->dev_ops = &ops; + eth_dev->rx_queue_count = eth_rx_queue_count; /* finally assign rx and tx ops */ eth_dev->rx_pkt_burst = eth_vhost_rx; diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index dc0093bdf0..4f2fa0d943 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -920,7 +920,6 @@ static const struct eth_dev_ops virtio_eth_dev_ops = { .rx_queue_intr_enable = virtio_dev_rx_queue_intr_enable, .rx_queue_intr_disable = virtio_dev_rx_queue_intr_disable, .rx_queue_release = virtio_dev_queue_release, - .rx_descriptor_done = virtio_dev_rx_queue_done, .tx_queue_setup = virtio_dev_tx_queue_setup, .tx_queue_release = virtio_dev_queue_release, /* collect stats per queue */ @@ -1903,6 +1902,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) } eth_dev->dev_ops = &virtio_eth_dev_ops; + eth_dev->rx_descriptor_done = virtio_dev_rx_queue_done; if (rte_eal_process_type() == RTE_PROC_SECONDARY) { if (!hw->virtio_user_dev) { diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index eb6cd01f8d..b6f26a513b 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -4545,11 +4545,11 @@ rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id) RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL); dev = &rte_eth_devices[port_id]; - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_queue_count, -ENOTSUP); + RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_queue_count, -ENOTSUP); if (queue_id >= dev->data->nb_rx_queues) return -EINVAL; - return (int)(*dev->dev_ops->rx_queue_count)(dev, queue_id); + return (int)(*dev->rx_queue_count)(dev, queue_id); } /** @@ -4573,9 +4573,8 @@ rte_eth_rx_descriptor_done(uint16_t port_id, uint16_t queue_id, uint16_t offset) { struct rte_eth_dev *dev = &rte_eth_devices[port_id]; RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_descriptor_done, -ENOTSUP); - return (*dev->dev_ops->rx_descriptor_done)( \ - dev->data->rx_queues[queue_id], offset); + RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_descriptor_done, -ENOTSUP); + return (*dev->rx_descriptor_done)(dev->data->rx_queues[queue_id], offset); } #define RTE_ETH_RX_DESC_AVAIL 0 /**< Desc available for hw. */ @@ -4630,10 +4629,10 @@ rte_eth_rx_descriptor_status(uint16_t port_id, uint16_t queue_id, if (queue_id >= dev->data->nb_rx_queues) return -ENODEV; #endif - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rx_descriptor_status, -ENOTSUP); + RTE_FUNC_PTR_OR_ERR_RET(*dev->rx_descriptor_status, -ENOTSUP); rxq = dev->data->rx_queues[queue_id]; - return (*dev->dev_ops->rx_descriptor_status)(rxq, offset); + return (*dev->rx_descriptor_status)(rxq, offset); } #define RTE_ETH_TX_DESC_FULL 0 /**< Desc filled for hw, waiting xmit. */ @@ -4687,10 +4686,10 @@ static inline int rte_eth_tx_descriptor_status(uint16_t port_id, if (queue_id >= dev->data->nb_tx_queues) return -ENODEV; #endif - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->tx_descriptor_status, -ENOTSUP); + RTE_FUNC_PTR_OR_ERR_RET(*dev->tx_descriptor_status, -ENOTSUP); txq = dev->data->tx_queues[queue_id]; - return (*dev->dev_ops->tx_descriptor_status)(txq, offset); + return (*dev->tx_descriptor_status)(txq, offset); } /** diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h index 32407dd418..8ed827475f 100644 --- a/lib/librte_ethdev/rte_ethdev_core.h +++ b/lib/librte_ethdev/rte_ethdev_core.h @@ -660,13 +660,6 @@ struct eth_dev_ops { eth_queue_stop_t tx_queue_stop; /**< Stop TX for a queue. */ eth_rx_queue_setup_t rx_queue_setup;/**< Set up device RX queue. */ eth_queue_release_t rx_queue_release; /**< Release RX queue. */ - eth_rx_queue_count_t rx_queue_count; - /**< Get the number of used RX descriptors. */ - eth_rx_descriptor_done_t rx_descriptor_done; /**< Check rxd DD bit. */ - eth_rx_descriptor_status_t rx_descriptor_status; - /**< Check the status of a Rx descriptor. */ - eth_tx_descriptor_status_t tx_descriptor_status; - /**< Check the status of a Tx descriptor. */ /* * Static inline functions use functions ABOVE this comment. * New dev_ops functions should be added BELOW to avoid breaking ABI. @@ -782,6 +775,12 @@ struct rte_eth_dev { eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function. */ eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function. */ eth_tx_prep_t tx_pkt_prepare; /**< Pointer to PMD transmit prepare function. */ + + eth_rx_queue_count_t rx_queue_count; /**< Get the number of used RX descriptors. */ + eth_rx_descriptor_done_t rx_descriptor_done; /**< Check rxd DD bit. */ + eth_rx_descriptor_status_t rx_descriptor_status; /**< Check the status of a Rx descriptor. */ + eth_tx_descriptor_status_t tx_descriptor_status; /**< Check the status of a Tx descriptor. */ + /** * Next two fields are per-device data but *data is shared between * primary and secondary processes and *process_private is per-process