[dpdk-dev] [PATCH v14 4/7] drivers/net: update Rx RSS hash offload capabilities
Andrew Rybchenko
arybchenko at solarflare.com
Tue Oct 29 08:21:46 CET 2019
On 10/29/19 8:03 AM, pbhagavatula at marvell.com wrote:
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>
> Add DEV_RX_OFFLOAD_RSS_HASH flag for all PMDs that support RSS hash
> delivery.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> Reviewed-by: Andrew Rybchenko <arybchenko at solarflare.com>
> Reviewed-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> Acked-by: Jerin Jacob <jerinj at marvell.com>
> Acked-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
[snip]
> diff --git a/drivers/net/sfc/sfc_ef10_essb_rx.c b/drivers/net/sfc/sfc_ef10_essb_rx.c
> index 63da807ea..d9d2ce6bd 100644
> --- a/drivers/net/sfc/sfc_ef10_essb_rx.c
> +++ b/drivers/net/sfc/sfc_ef10_essb_rx.c
> @@ -715,7 +715,8 @@ struct sfc_dp_rx sfc_ef10_essb_rx = {
> },
> .features = SFC_DP_RX_FEAT_FLOW_FLAG |
> SFC_DP_RX_FEAT_FLOW_MARK,
> - .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM,
> + .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM |
> + DEV_RX_OFFLOAD_RSS_HASH,
> .queue_offload_capa = 0,
> .get_dev_info = sfc_ef10_essb_rx_get_dev_info,
> .pool_ops_supported = sfc_ef10_essb_rx_pool_ops_supported,
> diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
> index f2fc6e70a..9e527b7fb 100644
> --- a/drivers/net/sfc/sfc_ef10_rx.c
> +++ b/drivers/net/sfc/sfc_ef10_rx.c
> @@ -796,7 +796,8 @@ struct sfc_dp_rx sfc_ef10_rx = {
> .features = SFC_DP_RX_FEAT_MULTI_PROCESS |
> SFC_DP_RX_FEAT_INTR,
> .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM |
> - DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM,
> + DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM |
> + DEV_RX_OFFLOAD_RSS_HASH,
> .queue_offload_capa = DEV_RX_OFFLOAD_SCATTER,
> .get_dev_info = sfc_ef10_rx_get_dev_info,
> .qsize_up_rings = sfc_ef10_rx_qsize_up_rings,
> diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
> index e6809bb64..4af8f1977 100644
> --- a/drivers/net/sfc/sfc_rx.c
> +++ b/drivers/net/sfc/sfc_rx.c
> @@ -617,7 +617,8 @@ struct sfc_dp_rx sfc_efx_rx = {
> .hw_fw_caps = 0,
> },
> .features = SFC_DP_RX_FEAT_INTR,
> - .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM,
> + .dev_offload_capa = DEV_RX_OFFLOAD_CHECKSUM |
> + DEV_RX_OFFLOAD_RSS_HASH,
> .queue_offload_capa = DEV_RX_OFFLOAD_SCATTER,
> .qsize_up_rings = sfc_efx_rx_qsize_up_rings,
> .qcreate = sfc_efx_rx_qcreate,
Thanks a lot, above looks good to me now.
> @@ -1556,6 +1557,9 @@ sfc_rx_check_mode(struct sfc_adapter *sa, struct rte_eth_rxmode *rxmode)
> rxmode->offloads |= DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM;
> }
>
> + if (!(rxmode->offloads & DEV_RX_OFFLOAD_RSS_HASH))
> + rxmode->offloads |= DEV_RX_OFFLOAD_RSS_HASH;
> +
I've tried to highlight on my previous review notes, but it looks like not
that successful. The right condition should check that offload is really
supported:
if ((offloads_supported & DEV_RX_OFFLOAD_RSS_HASH) &&
(~rxmode->offloads & DEV_RX_OFFLOAD_RSS_HASH))
rxmode->offloads |= DEV_RX_OFFLOAD_RSS_HASH;
Basically similar to DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM above
(including style of disabled offload check just to have common style).
Thanks.
> return rc;
> }
>
[snip]
More information about the dev
mailing list