#define pr_fmt(fmt) …
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
#include <linux/netpoll.h>
#include <linux/bpf.h>
#include <linux/bpf_trace.h>
#include <linux/kernel.h>
#include <net/xdp.h>
#include <linux/mutex.h>
#include <linux/rtnetlink.h>
#include "hyperv_net.h"
u32 netvsc_run_xdp(struct net_device *ndev, struct netvsc_channel *nvchan,
struct xdp_buff *xdp)
{ … }
unsigned int netvsc_xdp_fraglen(unsigned int len)
{ … }
struct bpf_prog *netvsc_xdp_get(struct netvsc_device *nvdev)
{ … }
int netvsc_xdp_set(struct net_device *dev, struct bpf_prog *prog,
struct netlink_ext_ack *extack,
struct netvsc_device *nvdev)
{ … }
int netvsc_vf_setxdp(struct net_device *vf_netdev, struct bpf_prog *prog)
{ … }
int netvsc_bpf(struct net_device *dev, struct netdev_bpf *bpf)
{ … }
static int netvsc_ndoxdp_xmit_fm(struct net_device *ndev,
struct xdp_frame *frame, u16 q_idx)
{ … }
int netvsc_ndoxdp_xmit(struct net_device *ndev, int n,
struct xdp_frame **frames, u32 flags)
{ … }