On Thu, Feb 14, 2019 at 10:33 AM Eric Leblond <eric@xxxxxxxxx> wrote: > > Hello, > > On Wed, 2019-02-13 at 20:46 +0100, Eric Leblond wrote: > > Hello, > > > > I've got a simple socket filter program that seems to interrupt when > > calling the load_word construct. I'm seeing the first message but > > never > > the second one. > > > > The code is the following > > > > int SEC("filter") hashfilter(struct __sk_buff *skb) { > > __u32 nhoff = BPF_LL_OFF + ETH_HLEN; > > So it seems the problem was coming from this line. Removing BPF_LL_OFF > fixes the problem for kernel starting 4.18. Maybe removing BPF_LL_OFF should work for all kernels? > > Is this a known issue ? > > Is there something that would allow a BPF file to work independently of > the kernel version ? > > > __u32 ip = 0; > > __u32 *value = NULL; > > #if 1 > > char fmtrei[] = "word load\n"; > > bpf_trace_printk(fmtrei, sizeof(fmtrei)); > > #endif > > ip = load_word(skb, nhoff + offsetof(struct iphdr, saddr)); > > #if 1 > > char fmti[] = "work done\n"; > > bpf_trace_printk(fmti, sizeof(fmti)); > > #endif > > > In 4.18 and above this is not working but older kernel were ok. > > > > Any suggestion will be appreciated. > > > > Best regards, > > BR, > -- > Eric Leblond <eric@xxxxxxxxx> >