Subject: Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

From: Jakub Kicinski <[email-masked]>
Date: Mon, 19 Aug 2024 15:52:57 -0700

On Mon, 19 Aug 2024 00:44:27 +0900 Taehee Yoo wrote:
> > @@ -9537,6 +9540,10 @@ static int dev_xdp_attach(struct net_device *dev, struct netlink_ext_ack *extack
> >                         NL_SET_ERR_MSG(extack, "Native and generic XDP can't be active at the same time");
> >                         return -EEXIST;
> >                 }
> > +               if (dev_get_max_mp_channel(dev) != -1) {
> > +                       NL_SET_ERR_MSG(extack, "XDP can't be installed on a netdev using memory providers");
> > +                       return -EINVAL;
> > +               }  
> 
> Should we consider virtual interfaces like bonding, bridge, etc?
> Virtual interfaces as an upper interface of physical interfaces can
> still install XDP prog.
> 
> # ip link add bond0 type bond
> # ip link set eth0 master bond0
> # ip link set bond0 xdp pin /sys/fs/bpf/x/y
> and
> # ip link set bond0 xdpgeneric pin /sys/fs/bpf/x/y
> 
> All virtual interfaces can install generic XDP prog.
> The bonding interface can install native XDP prog.

Good point. We may need some common helpers to place the checks for XDP.
They are spread all over the place now.