Question about flow_type_rss_offloads in rte_eth_dev_info

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Fri Apr 22 13:41:12 CEST 2022


Hi,

On 4/22/22 06:55, lihuisong (C) wrote:
> Hi, all.
> 
> The RTE_ETH_FLOW_XXX macros, are used to display supported flow types 
> for PMD based on the rte_eth_dev_info.flow_type_rss_offloads in the 
> port_infos_display() of testpmd.

That's true and it is wrong in testpmd. RTE_ETH_RSS_* and
RTE_ETH_FLOW_* are intentionally disconnected right now.

flow_type_rss_offloads docmentation is a bit misleading saying
that "the bit offset also means flow type". For example,
RTE_ETH_RSS_L4_CHKSUM and RTE_ETH_RSS_L3_SRC_ONLY hardly mean
flow type. I think the documentation must be fixed - it should
just refer to RTE_ETH_RSS_* defines.

So, returning to testpmd, "Supported RSS offload flow types"
code should be reworked to avoid RTE_ETH_FLOW_* usage.
flowtype_to_str() should be kept intact since it is used for
FDIR commands which operate with flows, not RSS bit-field.
A new function should be implemented which uses maps
RTE_ETH_RSS_* bits into string to be printed.

> And PMD assigns RSS offload capability bit, like RTE_ETH_RSS_XXX, to 
> this field.
> The usage of RTE_ETH_RSS_XXX macros are described as follows in:
> /*
>   * Below macros are defined for RSS offload types, they can be used to
>   * fill rte_eth_rss_conf.rss_hf or rte_flow_action_rss.types.
>   */
> #define RTE_ETH_RSS_IPV4               RTE_BIT64(2)
> 
> But RTE_ETH_FLOW_MAX is 24, and the number of RTE_ETH_FLOW_XXX micro far 
> less than
> the number of RTE_ETH_RSS_XXX. If PMD sets RSS offload capability bit 
> out range of
> RTE_ETH_FLOW_XXX, like RTE_ETH_RSS_L3_SRC_ONLY, to this field, testpmd 
> will display
> "user defined 63" when run 'show port info 0'. This is a problem that I 
> have now.
> 
> On the other hand, rx_adv_conf.rte_eth_rss_conf.rss_hf from App must be 
> within the
> rte_eth_dev_info.flow_type_rss_offloads in dev_configure.
> 
> To sum up, I'm a little confused right now.
> How should PMD populate the field "flow_type_rss_offloads" in struct 
> rte_eth_dev_info?

flow_type_rss_offloads should be populated in terms of
RTE_ETH_RSS_* bits.

Andrew.


More information about the dev mailing list