Hi! This small set adds support for bpf_xdp_adjust_head() to the offload. Since we have access to unmodified BPF bytecode translating calls is pretty trivial. First part of the series adds handling of BPF capabilities included in the FW in TLV format. The last two patches add adjust head support in the nfp verifier and jit, and a small optimization in case we can guarantee the constant adjustment will always meet adjustment constaints.
Jakub Kicinski (5): nfp: add nfp_cpp_area_size() accessor nfp: bpf: prepare for parsing BPF FW capabilities nfp: bpf: prepare for call support nfp: bpf: add basic support for adjust head call nfp: bpf: optimize the adjust_head calls in trivial cases drivers/net/ethernet/netronome/nfp/bpf/fw.h | 54 ++++++++++ drivers/net/ethernet/netronome/nfp/bpf/jit.c | 107 +++++++++++++++++++ drivers/net/ethernet/netronome/nfp/bpf/main.c | 115 +++++++++++++++++++++ drivers/net/ethernet/netronome/nfp/bpf/main.h | 30 ++++++ drivers/net/ethernet/netronome/nfp/bpf/offload.c | 2 + drivers/net/ethernet/netronome/nfp/bpf/verifier.c | 70 +++++++++++++ drivers/net/ethernet/netronome/nfp/nfp_asm.h | 2 + .../net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h | 1 + .../ethernet/netronome/nfp/nfpcore/nfp_cppcore.c | 11 ++ 9 files changed, 392 insertions(+) create mode 100644 drivers/net/ethernet/netronome/nfp/bpf/fw.h -- 2.15.1