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. 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>