[v2] net/ena: enable multi segment in Tx offload flags

Message ID 20210730083441.7465-1-olivier.matz@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [v2] net/ena: enable multi segment in Tx offload flags |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot success github build: passed
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing fail Testing issues
ci/iol-abi-testing success Testing PASS

Commit Message

Olivier Matz July 30, 2021, 8:34 a.m. UTC
  From: Ghalem Boudour <ghalem.boudour@6wind.com>

The DPDK ENA driver does not provide multi-segment tx offload capability.
Let's add DEV_TX_OFFLOAD_MULTI_SEGS to ports offload capability by
default, and always set it in dev->data->dev_conf.txmode.offload.

This flag in not listed in doc/guides/nics/features/default.ini, so
ena.ini does not need to be updated.

Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Cc: stable@dpdk.org

Signed-off-by: Ghalem Boudour <ghalem.boudour@6wind.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---

v2
* set DEV_TX_OFFLOAD_MULTI_SEGS in dev->data->dev_conf.txmode.offload
* add Fixes and Cc stable

 drivers/net/ena/ena_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Michal Krawczyk July 30, 2021, 9:37 a.m. UTC | #1
pt., 30 lip 2021 o 10:35 Olivier Matz <olivier.matz@6wind.com> napisał(a):
>
> From: Ghalem Boudour <ghalem.boudour@6wind.com>
>
> The DPDK ENA driver does not provide multi-segment tx offload capability.
> Let's add DEV_TX_OFFLOAD_MULTI_SEGS to ports offload capability by
> default, and always set it in dev->data->dev_conf.txmode.offload.
>
> This flag in not listed in doc/guides/nics/features/default.ini, so
> ena.ini does not need to be updated.
>
> Fixes: 1173fca25af9 ("ena: add polling-mode driver")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ghalem Boudour <ghalem.boudour@6wind.com>
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
> ---
>
> v2
> * set DEV_TX_OFFLOAD_MULTI_SEGS in dev->data->dev_conf.txmode.offload
> * add Fixes and Cc stable
>
>  drivers/net/ena/ena_ethdev.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
> index dfe68279fa..b59451034c 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -1981,6 +1981,7 @@ static int ena_dev_configure(struct rte_eth_dev *dev)
>
>         if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG)
>                 dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH;
> +       dev->data->dev_conf.txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
>
>         adapter->tx_selected_offloads = dev->data->dev_conf.txmode.offloads;
>         adapter->rx_selected_offloads = dev->data->dev_conf.rxmode.offloads;
> @@ -2055,6 +2056,7 @@ static int ena_infos_get(struct rte_eth_dev *dev,
>                         DEV_RX_OFFLOAD_TCP_CKSUM;
>
>         rx_feat |= DEV_RX_OFFLOAD_JUMBO_FRAME;
> +       tx_feat |= DEV_TX_OFFLOAD_MULTI_SEGS;
>
>         /* Inform framework about available features */
>         dev_info->rx_offload_capa = rx_feat;
> --
> 2.29.2
>
  
Thomas Monjalon July 30, 2021, 10:11 a.m. UTC | #2
30/07/2021 11:37, Michał Krawczyk:
> pt., 30 lip 2021 o 10:35 Olivier Matz <olivier.matz@6wind.com> napisał(a):
> >
> > From: Ghalem Boudour <ghalem.boudour@6wind.com>
> >
> > The DPDK ENA driver does not provide multi-segment tx offload capability.
> > Let's add DEV_TX_OFFLOAD_MULTI_SEGS to ports offload capability by
> > default, and always set it in dev->data->dev_conf.txmode.offload.
> >
> > This flag in not listed in doc/guides/nics/features/default.ini, so
> > ena.ini does not need to be updated.
> >
> > Fixes: 1173fca25af9 ("ena: add polling-mode driver")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Ghalem Boudour <ghalem.boudour@6wind.com>
> > Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> Acked-by: Michal Krawczyk <mk@semihalf.com>

Applied, thanks.
  

Patch

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index dfe68279fa..b59451034c 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1981,6 +1981,7 @@  static int ena_dev_configure(struct rte_eth_dev *dev)
 
 	if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG)
 		dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH;
+	dev->data->dev_conf.txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;
 
 	adapter->tx_selected_offloads = dev->data->dev_conf.txmode.offloads;
 	adapter->rx_selected_offloads = dev->data->dev_conf.rxmode.offloads;
@@ -2055,6 +2056,7 @@  static int ena_infos_get(struct rte_eth_dev *dev,
 			DEV_RX_OFFLOAD_TCP_CKSUM;
 
 	rx_feat |= DEV_RX_OFFLOAD_JUMBO_FRAME;
+	tx_feat |= DEV_TX_OFFLOAD_MULTI_SEGS;
 
 	/* Inform framework about available features */
 	dev_info->rx_offload_capa = rx_feat;