Hi!

The core of this series is direct packet access support.  With a
small change to the verifier, the offloaded code can now make
use of DPA.  We need to be careful to use kernel (after initial
translation) offsets in our JIT.  Direct packet access also brings
us to the problem of eBPF endianness.  After considering the 
changes necessary we decided to not support translation on both
BE and LE hosts, for now.

This series contains two fixes - one for compare instructions and
one for ineffective jne optimization.  I chose to include fixes
in this set because the code in -net works only with unreleased
PoC FW (ABI version 1) and therefore nobody outside of Netronome
can exercise it anyway.


Jakub Kicinski (12):
  bpf: verifier: set reg_type on context accesses in second pass
  nfp: bpf: reorder arguments to emit_ld_field_any()
  nfp: bpf: add missing return in jne_imm optimization
  nfp: bpf: fix compare instructions
  nfp: bpf: add mov helper
  nfp: bpf: implement byte swap instruction
  nfp: bpf: support BPF offload only on little endian
  nfp: bpf: fix context accesses
  nfp: bpf: separate I/O from checks for legacy data load
  nfp: bpf: add support for direct packet access - read
  nfp: bpf: direct packet access - write
  nfp: bpf: support direct packet access in TC

 drivers/net/ethernet/netronome/nfp/bpf/jit.c      | 402 ++++++++++++++++++----
 drivers/net/ethernet/netronome/nfp/bpf/main.c     |   2 +
 drivers/net/ethernet/netronome/nfp/bpf/main.h     |   3 +
 drivers/net/ethernet/netronome/nfp/bpf/verifier.c |  21 +-
 drivers/net/ethernet/netronome/nfp/nfp_asm.c      |   5 +-
 drivers/net/ethernet/netronome/nfp/nfp_asm.h      |   6 +-
 kernel/bpf/verifier.c                             |  43 ++-
 7 files changed, 393 insertions(+), 89 deletions(-)

-- 
2.14.1

Reply via email to