Subject: Re: [PATCH net-next] ebpf, filter: do not convert skb->protocol to host endianess during runtime

From: Alexei Starovoitov <[email-masked]>
Date: Thu, 19 Mar 2015 11:50:57 -0700

On 3/19/15 11:38 AM, Daniel Borkmann wrote:
> Commit c24973957975 ("bpf: allow BPF programs access 'protocol' and 'vlan_tci'
> fields") has added support for accessing protocol, vlan_present and vlan_tci
> into the skb offset map.
>
> As referenced in the below discussion, accessing skb->protocol from an eBPF
> program should be converted without handling endianess.
>
> The reason for this is that an eBPF program could simply do a check more
> naturally, by f.e. testing skb->protocol == htons(ETH_P_IP), where the LLVM
> compiler resolves htons() against a constant automatically during compilation
> time, as opposed to an otherwise needed run time conversion.
>
> After all, the way of programming both from a user perspective differs quite
> a lot, i.e. bpf_asm ["ld proto"] versus a C subset/LLVM.
>
> Reference: https://patchwork.ozlabs.org/patch/450819/
> Signed-off-by: Daniel Borkmann <[email-masked]>
> ---
>   (Follow-up from our previous discussion)

sure. let's save few run-time cycles.

Acked-by: Alexei Starovoitov <[email-masked]>