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