Re: [PATCH net-next v3 3/5] bnxt_en: Implement XDP RSS hash metadata extraction for V3_CMP
From: Andy Gospodarek
Date: Thu Mar 12 2026 - 20:15:52 EST
On Fri, Mar 06, 2026 at 05:00:18PM -0600, Chris J Arges wrote:
> This adds another conditional for if cmp_type is CMP_TYPE_RX_L2_V3_CMP for
> drivers that support this completion format.
>
> It uses a similar approach as found in other parts of the driver.
>
> Signed-off-by: Chris J Arges <carges@xxxxxxxxxxxxxx>
Reviewed-by: Andy Gospodarek <gospo@xxxxxxxxxxxx>
> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 20 +++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
> index 1f920464b426..25ecef1eb96e 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
> @@ -514,6 +514,26 @@ int bnxt_xdp_rx_hash(const struct xdp_md *ctx, u32 *hash,
> default:
> break;
> }
> + } else if (xdp->cmp_type == CMP_TYPE_RX_L2_V3_CMP) {
> + struct bnxt *bp = netdev_priv(xdp->xdp.rxq->dev);
> + u8 ext_op;
> +
> + if (rxcmp1->rx_cmp_flags2 & cpu_to_le32(RX_CMP_FLAGS2_IP_TYPE))
> + hash_type |= XDP_RSS_TYPE_L3_IPV6;
> + else
> + hash_type |= XDP_RSS_TYPE_L3_IPV4;
> +
> + ext_op = RX_CMP_V3_HASH_TYPE(bp, rxcmp);
> + switch (ext_op) {
> + case EXT_OP_INNER_4:
> + case EXT_OP_OUTER_4:
> + case EXT_OP_INNFL_3:
> + case EXT_OP_OUTFL_3:
> + hash_type |= XDP_RSS_L4;
> + break;
> + default:
> + break;
> + }
> }
>
> *rss_type = hash_type;