Subject: Re: [PATCH net-next v6 3/9] bnxt_en: add support for tcp-data-split ethtool command

From: Jakub Kicinski <[email-masked]>
Date: Thu, 19 Dec 2024 06:29:42 -0800

On Thu, 19 Dec 2024 23:05:30 +0900 Taehee Yoo wrote:
> > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
> > > index f88b641533fc..1bfff7f29310 100644
> > > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
> > > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
> > > @@ -395,6 +395,10 @@ static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog)
> > >                           bp->dev->mtu, BNXT_MAX_PAGE_MODE_MTU);
> > >               return -EOPNOTSUPP;
> > >       }
> > > +     if (prog && bp->flags & BNXT_FLAG_HDS) {
> > > +             netdev_warn(dev, "XDP is disallowed when HDS is enabled.\n");
> > > +             return -EOPNOTSUPP;
> > > +     }  
> >
> > And this check should also live in the core, now that core has access
> > to dev->ethtool->hds_config ? I think you can add this check to the
> > core in the same patch as the chunk referred to above.  
> 
> The bnxt_en disallows setting up both single and multi buffer XDP, but core
> checks only single buffer XDP. So, if multi buffer XDP is attaching to
> the bnxt_en driver when HDS is enabled, the core can't filter it.

Hm. Did you find this in the code, or did Broadcom folks suggest it?
AFAICT bnxt supports multi-buf XDP. Is there something in the code 
that special-cases aggregation but doesn't work for pure HDS?