#include <net/pkt_cls.h>
#include "../nfpcore/nfp_cpp.h"
#include "../nfpcore/nfp_nffw.h"
#include "../nfpcore/nfp_nsp.h"
#include "../nfp_app.h"
#include "../nfp_main.h"
#include "../nfp_net.h"
#include "../nfp_port.h"
#include "fw.h"
#include "main.h"
const struct rhashtable_params nfp_bpf_maps_neutral_params = …;
static bool nfp_net_ebpf_capable(struct nfp_net *nn)
{ … }
static int
nfp_bpf_xdp_offload(struct nfp_app *app, struct nfp_net *nn,
struct bpf_prog *prog, struct netlink_ext_ack *extack)
{ … }
static const char *nfp_bpf_extra_cap(struct nfp_app *app, struct nfp_net *nn)
{ … }
static int
nfp_bpf_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, unsigned int id)
{ … }
static void nfp_bpf_vnic_free(struct nfp_app *app, struct nfp_net *nn)
{ … }
static int nfp_bpf_setup_tc_block_cb(enum tc_setup_type type,
void *type_data, void *cb_priv)
{ … }
static LIST_HEAD(nfp_bpf_block_cb_list);
static int nfp_bpf_setup_tc(struct nfp_app *app, struct net_device *netdev,
enum tc_setup_type type, void *type_data)
{ … }
static int
nfp_bpf_check_mtu(struct nfp_app *app, struct net_device *netdev, int new_mtu)
{ … }
static int
nfp_bpf_parse_cap_adjust_head(struct nfp_app_bpf *bpf, void __iomem *value,
u32 length)
{ … }
static int
nfp_bpf_parse_cap_func(struct nfp_app_bpf *bpf, void __iomem *value, u32 length)
{ … }
static int
nfp_bpf_parse_cap_maps(struct nfp_app_bpf *bpf, void __iomem *value, u32 length)
{ … }
static int
nfp_bpf_parse_cap_random(struct nfp_app_bpf *bpf, void __iomem *value,
u32 length)
{ … }
static int
nfp_bpf_parse_cap_qsel(struct nfp_app_bpf *bpf, void __iomem *value, u32 length)
{ … }
static int
nfp_bpf_parse_cap_adjust_tail(struct nfp_app_bpf *bpf, void __iomem *value,
u32 length)
{ … }
static int
nfp_bpf_parse_cap_cmsg_multi_ent(struct nfp_app_bpf *bpf, void __iomem *value,
u32 length)
{ … }
static int
nfp_bpf_parse_cap_abi_version(struct nfp_app_bpf *bpf, void __iomem *value,
u32 length)
{ … }
static int nfp_bpf_parse_capabilities(struct nfp_app *app)
{ … }
static void nfp_bpf_init_capabilities(struct nfp_app_bpf *bpf)
{ … }
static int nfp_bpf_ndo_init(struct nfp_app *app, struct net_device *netdev)
{ … }
static void nfp_bpf_ndo_uninit(struct nfp_app *app, struct net_device *netdev)
{ … }
static int nfp_bpf_start(struct nfp_app *app)
{ … }
static int nfp_bpf_init(struct nfp_app *app)
{ … }
static void nfp_bpf_clean(struct nfp_app *app)
{ … }
const struct nfp_app_type app_bpf = …;