On 11/26/19 4:07 AM, Prashant Bhole wrote: > From: Jason Wang <jasowang@xxxxxxxxxx> > > This patch introduces an ioctl way to set an offloaded XDP program > to tun driver. This ioctl will be used by qemu to offload XDP program > from virtio_net in the guest. > > Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx> > Signed-off-by: Prashant Bhole <prashantbhole.linux@xxxxxxxxx> > --- > drivers/net/tun.c | 19 ++++++++++++++----- > include/uapi/linux/if_tun.h | 1 + > 2 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index d078b4659897..ecb49101b0b5 100644 > --- a/drivers/net/tun.c > +++ b/drivers/net/tun.c > @@ -241,6 +241,7 @@ struct tun_struct { > struct bpf_prog __rcu *xdp_prog; > struct tun_prog __rcu *steering_prog; > struct tun_prog __rcu *filter_prog; > + struct tun_prog __rcu *offloaded_xdp_prog; I have been looking into running XDP pograms in the TX path of a tap device [1] where the program is installed and managed by a process in the host. The code paths are the same as what you are doing with XDP offload, so how about calling this xdp_prog_tx? [1] https://github.com/dsahern/linux/commit/f2303d05187c8a604cdb70b288338e9b1d1b0db6