make -C tools/testing/selftests TARGETS="drivers/net" TEST_PROGS=xdp.py TEEST_GEN_PROGS="" run_tests make: Entering directory '/home/virtme/testing/wt-25/tools/testing/selftests' make[1]: Entering directory '/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net' make[1]: Entering directory '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib' make[1]: Entering directory '/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net' TAP version 13 1..1 # overriding timeout to 360 # selftests: drivers/net: xdp.py # TAP version 13 # 1..10 # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 231, in test_xdp_native_pass_sb # # Exception| _test_pass(cfg, bpf_info, 256) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 209, in _test_pass # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 1500 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:671\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff88800bb22000 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff88800bb22000 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff88800bb26200 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff88800bb22000 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 1 xdp.test_xdp_native_pass_sb # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 243, in test_xdp_native_pass_mb # # Exception| _test_pass(cfg, bpf_info, 8000) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 209, in _test_pass # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff88800e44c400 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff88800e44c400 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff88800e44be00 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff88800e44c400 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 2 xdp.test_xdp_native_pass_mb # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 278, in test_xdp_native_drop_sb # # Exception| _test_drop(cfg, bpf_info, 256) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 256, in _test_drop # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 1500 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:671\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff88801f3ba600 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff88801f3ba600 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff88801f3bfa00 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff88801f3ba600 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 3 xdp.test_xdp_native_drop_sb # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 290, in test_xdp_native_drop_mb # # Exception| _test_drop(cfg, bpf_info, 8000) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 256, in _test_drop # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff888004947a00 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff888004947a00 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff888004946800 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff888004947a00 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 4 xdp.test_xdp_native_drop_mb # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 349, in test_xdp_native_tx_sb # # Exception| _test_xdp_native_tx(cfg, bpf_info, [0, 1500 // 2, 1500 - pkt_hdr_len]) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 303, in _test_xdp_native_tx # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 1500 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:671\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff88800e578200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff88800e578200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff88800e57a000 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff88800e578200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 5 xdp.test_xdp_native_tx_sb # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 364, in test_xdp_native_tx_mb # # Exception| _test_xdp_native_tx(cfg, bpf_info, [8000, 0]) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 303, in _test_xdp_native_tx # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff88800b398200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff88800b398200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff88800b39b200 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff88800b398200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 6 xdp.test_xdp_native_tx_mb # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 506, in test_xdp_native_adjst_tail_grow_data # # Exception| res = _test_xdp_native_tail_adjst( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 452, in _test_xdp_native_tail_adjst # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff888014ffa600 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff888014ffa600 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff888014ffa000 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff888014ffa600 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 7 xdp.test_xdp_native_adjst_tail_grow_data # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 524, in test_xdp_native_adjst_tail_shrnk_data # # Exception| res = _test_xdp_native_tail_adjst( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 452, in _test_xdp_native_tail_adjst # # Exception| prog_info = _load_xdp_prog(cfg, bpf_info) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff8880054a3200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff8880054a3200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff8880054a5600 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff8880054a3200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 8 xdp.test_xdp_native_adjst_tail_shrnk_data # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 648, in test_xdp_native_adjst_head_grow_data # # Exception| res = _test_xdp_native_head_adjst(cfg, "xdp_prog_frags", pkt_sz_lst, offset_lst) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 572, in _test_xdp_native_head_adjst # # Exception| prog_info = _load_xdp_prog(cfg, BPFProgInfo(prog, "xdp_native.bpf.o", "xdp.frags", 9000)) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff888008a75000 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff888008a75000 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff888008a74a00 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff888008a75000 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 9 xdp.test_xdp_native_adjst_head_grow_data # # Exception| Traceback (most recent call last): # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/ksft.py", line 244, in ksft_run # # Exception| case(*args) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 669, in test_xdp_native_adjst_head_shrnk_data # # Exception| res = _test_xdp_native_head_adjst(cfg, "xdp_prog_frags", pkt_sz_lst, offset_lst) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 572, in _test_xdp_native_head_adjst # # Exception| prog_info = _load_xdp_prog(cfg, BPFProgInfo(prog, "xdp_native.bpf.o", "xdp.frags", 9000)) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net/./xdp.py", line 114, in _load_xdp_prog # # Exception| cmd( # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 75, in __init__ # # Exception| self.process(terminate=False, fail=fail, timeout=timeout) # # Exception| File "/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/py/utils.py", line 95, in process # # Exception| raise CmdExitFailure("Command failed: %s\nSTDOUT: %s\nSTDERR: %s" % # # Exception| net.lib.py.utils.CmdExitFailure: Command failed: ip link set dev enp1s0 mtu 9000 xdpdrv obj /home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o sec xdp.frags # # Exception| STDOUT: b'' # # Exception| STDERR: b"libbpf: prog 'xdp_prog_frags': BPF program load failed: Invalid argument\nlibbpf: prog 'xdp_prog_frags': -- BEGIN PROG LOAD LOG --\n0: R1=ctx() R10=fp0\n; return xdp_prog_common(ctx); @ xdp_native.bpf.c:677\n0: (85) call pc+1\ncaller:\n R10=fp0\ncallee:\n frame1: R1=ctx() R10=fp0\n2: frame1: R1=ctx() R10=fp0\n; static int xdp_prog_common(struct xdp_md *ctx) @ xdp_native.bpf.c:636\n2: (bf) r7 = r1 ; frame1: R1=ctx() R7_w=ctx()\n3: (b7) r1 = 0 ; frame1: R1_w=0\n; key = XDP_MODE; @ xdp_native.bpf.c:641\n4: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=0 R10=fp0 fp-336=????0\n5: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n6: (07) r2 += -336 ; frame1: R2_w=fp-336\n; mode = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:642\n7: (18) r1 = 0xffff88800e57e200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n9: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n10: (bf) r8 = r0 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n11: (b7) r6 = 2 ; frame1: R6_w=2\n; if (!mode) @ xdp_native.bpf.c:643\n12: (15) if r8 == 0x0 goto pc+737 ; frame1: R8_w=map_value(map=map_xdp_setup,ks=4,vs=4)\n13: (b7) r1 = 1 ; frame1: R1_w=1\n; key = XDP_PORT; @ xdp_native.bpf.c:646\n14: (63) *(u32 *)(r10 -336) = r1 ; frame1: R1_w=1 R10=fp0 fp-336=????1\n15: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n16: (07) r2 += -336 ; frame1: R2_w=fp-336\n; port = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:647\n17: (18) r1 = 0xffff88800e57e200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n19: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; if (!port) @ xdp_native.bpf.c:648\n20: (15) if r0 == 0x0 goto pc+729 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n; switch (*mode) { @ xdp_native.bpf.c:651\n21: (61) r1 = *(u32 *)(r8 +0) ; frame1: R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R8=map_value(map=map_xdp_setup,ks=4,vs=4)\n22: (65) if r1 s> 0x1 goto pc+20 43: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; switch (*mode) { @ xdp_native.bpf.c:651\n43: (15) if r1 == 0x2 goto pc+30 ; frame1: R1=scalar(smin=umin=umin32=3,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n44: (15) if r1 == 0x3 goto pc+133 ; frame1: R1=scalar(smin=umin=umin32=4,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n45: (15) if r1 == 0x4 goto pc+1 47: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=4 R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n47: (61) r2 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R2_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; void *data = (void *)(long)ctx->data; @ xdp_native.bpf.c:576\n48: (61) r9 = *(u32 *)(r7 +0) ; frame1: R7=ctx() R9_w=pkt(r=0)\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n49: (57) r2 &= 65535 ; frame1: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n50: (bf) r1 = r7 ; frame1: R1=ctx() R7=ctx()\n51: (85) call pc+700\ncaller:\n frame1: R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=pkt(r=0) R10=fp0 fp-336=????1\ncallee:\n frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n752: frame2: R1=ctx() R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0\n; static struct udphdr *filter_udphdr(struct xdp_md *ctx, __u16 port) @ xdp_native.bpf.c:71\n752: (bf) r6 = r2 ; frame2: R2=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6_w=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n753: (bf) r7 = r1 ; frame2: R1=ctx() R7_w=ctx()\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth)); @ xdp_native.bpf.c:78\n754: (b7) r2 = 14 ; frame2: R2_w=14\n755: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n756: (bf) r1 = r0 ; frame2: R0_w=scalar(id=10) R1_w=scalar(id=10)\n757: (b7) r0 = 0 ; frame2: R0_w=0\n758: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n759: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:79\n760: (55) if r1 != 0x0 goto pc+59 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:82\n761: (61) r2 = *(u32 *)(r7 +4) ; frame2: R2_w=pkt_end() R7=ctx()\n; data = eth = (void *)(long)ctx->data; @ xdp_native.bpf.c:83\n762: (61) r1 = *(u32 *)(r7 +0) ; frame2: R1_w=pkt(r=0) R7=ctx()\n; if (data + sizeof(*eth) > data_end) @ xdp_native.bpf.c:85\n763: (bf) r3 = r1 ; frame2: R1_w=pkt(r=0) R3_w=pkt(r=0)\n764: (07) r3 += 14 ; frame2: R3_w=pkt(off=14,r=0)\n765: (2d) if r3 > r2 goto pc+54 ; frame2: R2_w=pkt_end() R3_w=pkt(off=14,r=14)\n; if (eth->h_proto == bpf_htons(ETH_P_IP)) { @ xdp_native.bpf.c:88\n766: (71) r2 = *(u8 *)(r1 +12) ; frame2: R1_w=pkt(r=14) R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n767: (71) r1 = *(u8 *)(r1 +13) ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n768: (67) r1 <<= 8 ; frame2: R1_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xff00,var_off=(0x0; 0xff00))\n769: (4f) r1 |= r2 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R2=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n770: (15) if r1 == 0xdd86 goto pc+17 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n771: (55) if r1 != 0x8 goto pc+48 ; frame2: R1=8\n; err = bpf_xdp_pull_data(ctx, sizeof(*eth) + sizeof(*iph) + @ xdp_native.bpf.c:91\n772: (bf) r1 = r7 ; frame2: R1_w=ctx() R7=ctx()\n773: (b7) r2 = 42 ; frame2: R2_w=42\n774: (85) call bpf_xdp_pull_data#57412 ; frame2: R0_w=scalar()\n775: (bf) r1 = r0 ; frame2: R0_w=scalar(id=11) R1_w=scalar(id=11)\n776: (b7) r0 = 0 ; frame2: R0_w=0\n777: (67) r1 <<= 32 ; frame2: R1_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n778: (77) r1 >>= 32 ; frame2: R1=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n; if (err) @ xdp_native.bpf.c:93\n779: (55) if r1 != 0x0 goto pc+40 ; frame2: R1=0\n; data_end = (void *)(long)ctx->data_end; @ xdp_native.bpf.c:96\n780: (61) r1 = *(u32 *)(r7 +4) ; frame2: R1_w=pkt_end() R7=ctx()\n; data = (void *)(long)ctx->data; @ xdp_native.bpf.c:97\n781: (61) r2 = *(u32 *)(r7 +0) ; frame2: R2_w=pkt(r=0) R7=ctx()\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n782: (bf) r7 = r2 ; frame2: R2_w=pkt(r=0) R7_w=pkt(r=0)\n783: (07) r7 += 34 ; frame2: R7_w=pkt(off=34,r=0)\n784: (2d) if r7 > r1 goto pc+35 ; frame2: R1_w=pkt_end() R7_w=pkt(off=34,r=34)\n; iph->protocol != IPPROTO_UDP) @ xdp_native.bpf.c:102\n785: (71) r2 = *(u8 *)(r2 +23) ; frame2: R2_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))\n; if (iph + 1 > (struct iphdr *)data_end || @ xdp_native.bpf.c:101\n786: (15) if r2 == 0x11 goto pc+16 803: frame2: R0=0 R1_w=pkt_end() R2_w=17 R6=scalar(id=9,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7_w=pkt(off=34,r=34) R10=fp0\n; if (udph + 1 > (struct udphdr *)data_end) @ xdp_native.bpf.c:128\n803: (bf) r2 = r7 ; frame2: R2_w=pkt(off=34,r=34) R7_w=pkt(off=34,r=34)\n804: (07) r2 += 8 ; frame2: R2_w=pkt(off=42,r=34)\n805: (2d) if r2 > r1 goto pc+14 ; frame2: R1_w=pkt_end() R2_w=pkt(off=42,r=42)\n; if (udph->dest != bpf_htons(port)) @ xdp_native.bpf.c:131\n806: (dc) r6 = be16 r6 ; frame2: R6_w=scalar()\n807: (69) r1 = *(u16 *)(r7 +2) ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42)\n808: (5d) if r1 != r6 goto pc+11 ; frame2: R1=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))\n809: (b7) r1 = 0 ; frame2: R1_w=0\n810: (63) *(u32 *)(r10 -4) = r1 ; frame2: R1_w=0 R10=fp0 fp-8=0000????\n811: (bf) r2 = r10 ; frame2: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n812: (07) r2 += -4 ; frame2: R2_w=fp-4\n; count = bpf_map_lookup_elem(&map_xdp_stats, &stat_type); @ xdp_native.bpf.c:65\n813: (18) r1 = 0xffff88800e57ee00 ; frame2: R1_w=map_ptr(map=map_xdp_stats,ks=4,vs=8)\n815: (85) call bpf_map_lookup_elem#1 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n; if (count) @ xdp_native.bpf.c:67\n816: (15) if r0 == 0x0 goto pc+2 ; frame2: R0_w=map_value(map=map_xdp_stats,ks=4,vs=8)\n817: (b7) r1 = 1 ; frame2: R1_w=1\n; __sync_fetch_and_add(count, 1); @ xdp_native.bpf.c:68\n818: (db) lock *(u64 *)(r0 +0) += r1 ; frame2: R0=map_value(map=map_xdp_stats,ks=4,vs=8) R1=1\n819: (bf) r0 = r7 ; frame2: R0_w=pkt(off=34,r=42) R7=pkt(off=34,r=42)\n; } @ xdp_native.bpf.c:137\n820: (95) exit\nreturning from callee:\n frame2: R0_w=pkt(off=34,r=42) R1=1 R6=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=pkt(off=34,r=42) R10=fp0 fp-8=0000????\nto caller at 52:\n frame1: R0_w=pkt(off=34,r=42) R6=2 R7=ctx() R8=map_value(map=map_xdp_setup,ks=4,vs=4) R9=scalar() R10=fp0 fp-336=????1\n; udph_ptr = filter_udphdr(ctx, port); @ xdp_native.bpf.c:583\n52: (bf) r8 = r0 ; frame1: R0_w=pkt(off=34,r=42) R8_w=pkt(off=34,r=42)\n; if (!udph_ptr) @ xdp_native.bpf.c:584\n53: (15) if r8 == 0x0 goto pc+696 ; frame1: R8_w=pkt(off=34,r=42)\n; key = XDP_ADJST_OFFSET; @ xdp_native.bpf.c:589\n54: (63) *(u32 *)(r10 -332) = r6 ; frame1: R6=2 R10=fp0 fp-336=mmmmmmmm\n55: (bf) r2 = r10 ; frame1: R2_w=fp0 R10=fp0\n; @ xdp_native.bpf.c:0\n56: (07) r2 += -332 ; frame1: R2_w=fp-332\n; val = bpf_map_lookup_elem(&map_xdp_setup, &key); @ xdp_native.bpf.c:590\n57: (18) r1 = 0xffff88800e57e200 ; frame1: R1_w=map_ptr(map=map_xdp_setup,ks=4,vs=4)\n59: (85) call bpf_map_lookup_elem#1 ; frame1: R0=map_value_or_null(id=12,map=map_xdp_setup,ks=4,vs=4)\n; if (!val) @ xdp_native.bpf.c:591\n60: (15) if r0 == 0x0 goto pc+689 ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4)\n61: (b7) r4 = 16 ; frame1: R4_w=16\n62: (b7) r5 = 1 ; frame1: R5_w=1\n; switch (*val) { @ xdp_native.bpf.c:594\n63: (61) r1 = *(u32 *)(r0 +0) ; frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1_w=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n64: (bf) r3 = r1 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R3_w=scalar(id=13,smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff))\n65: (67) r3 <<= 32 ; frame1: R3_w=scalar(smax=0x7fffffff00000000,umax=0xffffffff00000000,smin32=0,smax32=umax32=0,var_off=(0x0; 0xffffffff00000000))\n66: (c7) r3 s>>= 32 ; frame1: R3_w=scalar(smin=0xffffffff80000000,smax=0x7fffffff)\n67: (18) r2 = 0xfffffeff ; frame1: R2_w=0xfffffeff\n69: (6d) if r1 s> r2 goto pc+282 ; frame1: R1_w=scalar(id=13,smin=0,smax=umax=umax32=0xfffffeff,var_off=(0x0; 0xffffffff)) R2_w=0xfffffeff\n70: (65) if r1 s> 0x3f goto pc+293 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n71: (15) if r1 == 0x10 goto pc+311 ; frame1: R1=scalar(id=13,smin=smin32=0,smax=umax=smax32=umax32=63,var_off=(0x0; 0x3f))\n72: (15) if r1 == 0x20 goto pc+307 380: frame1: R0=map_value(map=map_xdp_setup,ks=4,vs=4) R1=32 R2=0xfffffeff R3=scalar(smin=0xffffffff80000000,smax=0x7fffffff) R4=16 R5=1 R6=2 R7=ctx() R8=pkt(off=34,r=42) R9=scalar() R10=fp0 fp-336=mmmmmmmm\n; switch (*val) { @ xdp_native.bpf.c:594\n380: (b7) r4 = 32 ; frame1: R4_w=32\n381: (05) goto pc+1\n383: (7b) *(u64 *)(r10 -352) = r5 ; frame1: R5=1 R10=fp0 fp-352_w=1\n384: (1f) r8 -= r9\nmath between pkt pointer and register with unbounded min value is not allowed\nprocessed 385 insns (limit 1000000) max_states_per_insn 1 total_states 38 peak_states 38 mark_read 9\n-- END PROG LOAD LOG --\nlibbpf: prog 'xdp_prog_frags': failed to load: -22\nlibbpf: failed to load object '/home/virtme/testing/wt-25/tools/testing/selftests/net/lib/xdp_native.bpf.o'\n" # not ok 10 xdp.test_xdp_native_adjst_head_shrnk_data # # Totals: pass:0 fail:10 xfail:0 xpass:0 skip:0 error:0 not ok 1 selftests: drivers/net: xdp.py # exit=1 make[1]: Leaving directory '/home/virtme/testing/wt-25/tools/testing/selftests/drivers/net' make: Leaving directory '/home/virtme/testing/wt-25/tools/testing/selftests' xx__-> echo $? 0 xx__-> echo scan > /sys/kernel/debug/kmemleak xx__-> echo scan > /sys/kernel/debug/kmemleak && cat /sys/kernel/debug/kmemleak xx__-> /opt/nipa/contest/scripts/env_check.py Comparing to existing state file: no differences detected. Current system state saved to /tmp/nipa-env-state.json xx__-> echo $? 0 xx__->