#include <linux/inetdevice.h>
#include <linux/etherdevice.h>
#include <linux/mm.h>
#include <linux/bpf.h>
#include <linux/bpf_trace.h>
#include <net/xdp.h>
#include <net/mana/mana.h>
void mana_xdp_tx(struct sk_buff *skb, struct net_device *ndev)
{ … }
static int mana_xdp_xmit_fm(struct net_device *ndev, struct xdp_frame *frame,
u16 q_idx)
{ … }
int mana_xdp_xmit(struct net_device *ndev, int n, struct xdp_frame **frames,
u32 flags)
{ … }
u32 mana_run_xdp(struct net_device *ndev, struct mana_rxq *rxq,
struct xdp_buff *xdp, void *buf_va, uint pkt_len)
{ … }
struct bpf_prog *mana_xdp_get(struct mana_port_context *apc)
{ … }
static struct bpf_prog *mana_chn_xdp_get(struct mana_port_context *apc)
{ … }
void mana_chn_setxdp(struct mana_port_context *apc, struct bpf_prog *prog)
{ … }
static int mana_xdp_set(struct net_device *ndev, struct bpf_prog *prog,
struct netlink_ext_ack *extack)
{ … }
int mana_bpf(struct net_device *ndev, struct netdev_bpf *bpf)
{ … }