net/bnxt: fix RSS action parser
Checks
Commit Message
Minor fixes are needed in the RTE_FLOW RSS action parser.
1. Update the comment in the parser to indicate rss level 1 implies
RSS on outer header.
2. RSS action will not be supported if level is > 1.
3. RSS action will not be supported if user or application specifies
MARK or COUNT action.
4. If RSS types is not specified i.e., is 0, the best effort RSS should
use IPV4 and IPV6 headers. Currently we are considering only IPV4.
Fixes: fe0bab7eb34e ("net/bnxt: enhance support for RSS action")
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
drivers/net/bnxt/bnxt_flow.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
Comments
On Mon, Oct 25, 2021 at 10:14 PM Ajit Khaparde
<ajit.khaparde@broadcom.com> wrote:
>
> Minor fixes are needed in the RTE_FLOW RSS action parser.
> 1. Update the comment in the parser to indicate rss level 1 implies
> RSS on outer header.
> 2. RSS action will not be supported if level is > 1.
> 3. RSS action will not be supported if user or application specifies
> MARK or COUNT action.
> 4. If RSS types is not specified i.e., is 0, the best effort RSS should
> use IPV4 and IPV6 headers. Currently we are considering only IPV4.
>
> Fixes: fe0bab7eb34e ("net/bnxt: enhance support for RSS action")
>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Acked-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
Patch applied to dpdk-next-net-brcm.
> ---
> drivers/net/bnxt/bnxt_flow.c | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c
> index ced697a739..9526a8fc5a 100644
> --- a/drivers/net/bnxt/bnxt_flow.c
> +++ b/drivers/net/bnxt/bnxt_flow.c
> @@ -1084,10 +1084,6 @@ bnxt_validate_rss_action(const struct rte_flow_action actions[])
> break;
> case RTE_FLOW_ACTION_TYPE_RSS:
> break;
> - case RTE_FLOW_ACTION_TYPE_MARK:
> - break;
> - case RTE_FLOW_ACTION_TYPE_COUNT:
> - break;
> default:
> return -ENOTSUP;
> }
> @@ -1151,11 +1147,10 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
> }
>
> /* Currently RSS hash on inner and outer headers are supported.
> - * 0 => Default setting
> - * 1 => Inner
> - * 2 => Outer
> + * 0 => Default (innermost RSS) setting
> + * 1 => Outermost
> */
> - if (rss->level > 2) {
> + if (rss->level > 1) {
> rte_flow_error_set(error,
> ENOTSUP,
> RTE_FLOW_ERROR_TYPE_ACTION,
> @@ -1177,7 +1172,7 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
> }
>
> /* If RSS types is 0, use a best effort configuration */
> - types = rss->types ? rss->types : RTE_ETH_RSS_IPV4;
> + types = rss->types ? rss->types : ETH_RSS_IPV4 | ETH_RSS_IPV6;
>
> hash_type = bnxt_rte_to_hwrm_hash_types(types);
>
> --
> 2.30.1 (Apple Git-130)
>
On 10/26/2021 6:14 AM, Ajit Khaparde wrote:
> Minor fixes are needed in the RTE_FLOW RSS action parser.
> 1. Update the comment in the parser to indicate rss level 1 implies
> RSS on outer header.
> 2. RSS action will not be supported if level is > 1.
> 3. RSS action will not be supported if user or application specifies
> MARK or COUNT action.
> 4. If RSS types is not specified i.e., is 0, the best effort RSS should
> use IPV4 and IPV6 headers. Currently we are considering only IPV4.
>
> Fixes: fe0bab7eb34e ("net/bnxt: enhance support for RSS action")
>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Acked-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
<...>
> @@ -1177,7 +1172,7 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
> }
>
> /* If RSS types is 0, use a best effort configuration */
> - types = rss->types ? rss->types : RTE_ETH_RSS_IPV4;
> + types = rss->types ? rss->types : ETH_RSS_IPV4 | ETH_RSS_IPV6;
We should keep the RTE_ prefix, updating in the next-net.
On Fri, Oct 29, 2021 at 10:22 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> On 10/26/2021 6:14 AM, Ajit Khaparde wrote:
> > Minor fixes are needed in the RTE_FLOW RSS action parser.
> > 1. Update the comment in the parser to indicate rss level 1 implies
> > RSS on outer header.
> > 2. RSS action will not be supported if level is > 1.
> > 3. RSS action will not be supported if user or application specifies
> > MARK or COUNT action.
> > 4. If RSS types is not specified i.e., is 0, the best effort RSS should
> > use IPV4 and IPV6 headers. Currently we are considering only IPV4.
> >
> > Fixes: fe0bab7eb34e ("net/bnxt: enhance support for RSS action")
> >
> > Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> > Acked-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
> > Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
>
> <...>
>
> > @@ -1177,7 +1172,7 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
> > }
> >
> > /* If RSS types is 0, use a best effort configuration */
> > - types = rss->types ? rss->types : RTE_ETH_RSS_IPV4;
> > + types = rss->types ? rss->types : ETH_RSS_IPV4 | ETH_RSS_IPV6;
>
> We should keep the RTE_ prefix, updating in the next-net.
ACK. Thanks
>
@@ -1084,10 +1084,6 @@ bnxt_validate_rss_action(const struct rte_flow_action actions[])
break;
case RTE_FLOW_ACTION_TYPE_RSS:
break;
- case RTE_FLOW_ACTION_TYPE_MARK:
- break;
- case RTE_FLOW_ACTION_TYPE_COUNT:
- break;
default:
return -ENOTSUP;
}
@@ -1151,11 +1147,10 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
}
/* Currently RSS hash on inner and outer headers are supported.
- * 0 => Default setting
- * 1 => Inner
- * 2 => Outer
+ * 0 => Default (innermost RSS) setting
+ * 1 => Outermost
*/
- if (rss->level > 2) {
+ if (rss->level > 1) {
rte_flow_error_set(error,
ENOTSUP,
RTE_FLOW_ERROR_TYPE_ACTION,
@@ -1177,7 +1172,7 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp,
}
/* If RSS types is 0, use a best effort configuration */
- types = rss->types ? rss->types : RTE_ETH_RSS_IPV4;
+ types = rss->types ? rss->types : ETH_RSS_IPV4 | ETH_RSS_IPV6;
hash_type = bnxt_rte_to_hwrm_hash_types(types);