On 5/27/20 6:07 PM, Gaëtan Rivet wrote: > On 27/05/20 15:34 +0100, Andrew Rybchenko wrote: >> From: Ian Dolzhansky <ian.dolzhan...@oktetlabs.ru> >> >> Failsafe driver has been indicating zero for RSS redirection table size >> after device info reporting had been reworked. Report proper value. >> >> Fixes: 4586be3743d4 ("net/failsafe: fix reported device info") >> Cc: Stephen Hemminger <sthem...@microsoft.com> >> Cc: sta...@dpdk.org >> >> Signed-off-by: Ian Dolzhansky <ian.dolzhan...@oktetlabs.ru> >> Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com> >> --- >> drivers/net/failsafe/failsafe_ops.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/drivers/net/failsafe/failsafe_ops.c >> b/drivers/net/failsafe/failsafe_ops.c >> index e046cfe6aa..45da9378c3 100644 >> --- a/drivers/net/failsafe/failsafe_ops.c >> +++ b/drivers/net/failsafe/failsafe_ops.c >> @@ -1068,6 +1068,13 @@ fs_dev_merge_info(struct rte_eth_dev_info *info, >> info->rx_queue_offload_capa &= sinfo->rx_queue_offload_capa; >> info->tx_queue_offload_capa &= sinfo->tx_queue_offload_capa; >> info->flow_type_rss_offloads &= sinfo->flow_type_rss_offloads; >> + >> + /* >> + * RETA size is a GCD of RETA sizes indicated by sub-devices. >> + * Each of these sizes is a power of 2, so use the lower one. >> + */ >> + info->reta_size = RTE_MIN(info->reta_size, sinfo->reta_size); >> + >> info->hash_key_size = RTE_MIN(info->hash_key_size, >> sinfo->hash_key_size); >> >> @@ -1128,6 +1135,7 @@ fs_dev_infos_get(struct rte_eth_dev *dev, >> infos->max_hash_mac_addrs = UINT32_MAX; >> infos->max_vfs = UINT16_MAX; >> infos->max_vmdq_pools = UINT16_MAX; >> + infos->reta_size = UINT16_MAX; >> infos->hash_key_size = UINT8_MAX; >> >> /* >> -- >> 2.17.1 >> > > Hello Andrew, Ian, > > The reta_size info is linked to being able to update the RSS RETA. > > I don't think it is a bug for the moment to report 0, as long as > failsafe does not support RETA update. Now, the reta_update ops could be > quickly implemented in failsafe, but that should be a new feature. > > Did you hit an issue with it?
Hello Gaetan, in our case reta_size is required for RSS testing even if there is no reta update and query API to estimate where a packet should be delivered. It assumes that default reta spreads over all Rx queue evenly. I.e. we need reta size and number of Rx queues to built default reta. May be it is really very testing specific, but IMO logical anyway. Andrew.