Björn Töpel <bjorn.topel@xxxxxxxxx> writes: > On Mon, 21 Oct 2019 at 15:37, Björn Töpel <bjorn.topel@xxxxxxxxx> wrote: >> >> On Mon, 21 Oct 2019 at 14:19, Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote: >> > >> > Björn Töpel <bjorn.topel@xxxxxxxxx> writes: >> > >> [...] >> > > >> > > bpf_redirect_map() returns a 32-bit signed int, so the upper 32-bit >> > > will need to be cleared. Having an explicit AND is one instruction >> > > less than two shifts. So, it's an optimization (every instruction is >> > > sacred). >> > >> > OIC. Well, a comment explaining that might be nice (since you're doing >> > per-instruction comments anyway)? :) >> > >> >> Sure, I can do a v3 with a comment, unless someone has a better idea >> avoiding both shifts and AND. >> >> Thanks for taking a look! >> > > Now wait, there are the JMP32 instructions that Jiong added. So, > shifts/AND can be avoided. Now, regarding backward compat... JMP32 is > pretty new. I need to think a bit how to approach this. I mean, I'd > like to be able to use new BPF instructions. Well, they went into kernel 5.1 AFAICT; does AF_XDP even work properly in kernels older than that? For the xdp-tutorial we've just been telling people to upgrade their kernels to use it (see, e.g., https://github.com/xdp-project/xdp-tutorial/issues/76). -Toke