-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
trace_dns: switch from perf ringbuf to bpf ringbuf #2579
Conversation
I restricted the changes in this PR to only image-based gadgets (and the socket enricher because it is a dependency). The builtins gadgets can be converted later. In this way, the conflict with #2574 will be easier to manager. This should be ready for reviews. |
8155efb
to
b59645a
Compare
Rebased to fix conflicts with #2574 |
b59645a
to
355edb3
Compare
Rebased, and removed unused variable. Even if the dns might change in the future (switch to a userspace parsing with wasm?), it is still worth merging this change: thanks to the changes in the socket enricher, it enables network gadgets to use the ringbuf map. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi!
Thank you! This is a really cool to have found a solution to use the buffer.h
API.
I have some comments nonetheless.
Best regards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some initial comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if we should store the data in the sockets map in network byte order (at least for the key), so we don't need to perform a lot of useless network to host endianess conversions. (This can be handled in another PR, but this fact is more obvious now that the conversions need to be done manually).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Note that it would break the ABI between image-based gadgets compiled for a previous version of IG when in use in a new version of IG...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Note that it would break the ABI between image-based gadgets compiled for a previous version of IG when in use in a new version of IG...
For now, this sounds OK.
But if we do such breaking changes in the future, we should definitely advertise about them as this is the kind of really nasty behavior to debug/understand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think ABI is very important now. That's why image-based gadgets is marked as experimental, to allow us to perform these kind of changes until the whole thing is more stable.
bcd9f77
to
f589f46
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi!
I tested it and it works fine:
$ sudo -E ./ig run trace_dns alban_dns_ringbuf % u=
INFO[0000] Experimental features enabled
RUNTIME.CONTAINERNA… SRC DST PID TASK NAME … PKT_… RCODE QTYPE
test-trace-dns 10.10.0.3:59587 8.8.4.4:53 113459 isc-net-0… inspektor-gadget… 0 4 0 1
test-trace-dns 8.8.4.4:53 10.10.0.3:59587 113459 isc-net-0… inspektor-gadget… 1 0 0 1
^Z
$ sudo bpftool map show name events alban_dns_ringbuf % u=
274: ringbuf name events flags 0x0
key 0B value 0B max_entries 262144 memlock 275800B
Please, see my comment regarding to breaking changes.
With regard to the built-in flavor, I will not enforce having it ported here, we should rather put all our efforts on image based gadgets to deprecate as soon as possible the built-in ones.
Best regards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which kernel are you testing it on? It fails for me on 5.15:
; int ig_trace_dns(struct __sk_buff *skb)
0: (bf) r6 = r1
1: (bf) r3 = r10
;
2: (07) r3 += -28
; err = bpf_skb_load_bytes(skb, offsetof(struct ethhdr, h_proto),
3: (b7) r2 = 12
4: (b7) r4 = 2
5: (85) call bpf_skb_load_bytes#26
last_idx 5 first_idx 0
regs=10 stack=0 before 4: (b7) r4 = 2
6: (b7) r1 = 0
; if (err < 0 || h_proto != bpf_htons(ETH_P_IP))
7: (6d) if r1 s> r0 goto pc+291
R0_w=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv0 R6_w=ctx(id=0,off=0,imm=0) R10=fp0 fp-32=??mm????
8: (69) r1 = *(u16 *)(r10 -28)
9: (55) if r1 != 0x8 goto pc+289
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv8 R6=ctx(id=0,off=0,imm=0) R10=fp0 fp-32=??mm????
10: (bf) r3 = r10
;
11: (07) r3 += -29
; err = bpf_skb_load_bytes(skb,
12: (bf) r1 = r6
13: (b7) r2 = 23
14: (b7) r4 = 1
15: (85) call bpf_skb_load_bytes#26
last_idx 15 first_idx 9
regs=10 stack=0 before 14: (b7) r4 = 1
16: (b7) r1 = 0
; if (err < 0 || proto != IPPROTO_UDP)
17: (6d) if r1 s> r0 goto pc+281
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv0 R6=ctx(id=0,off=0,imm=0) R10=fp0 fp-32=??mmm???
18: (71) r1 = *(u8 *)(r10 -29)
19: (55) if r1 != 0x11 goto pc+279
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv17 R6=ctx(id=0,off=0,imm=0) R10=fp0 fp-32=??mmm???
20: (bf) r3 = r10
; err = bpf_skb_load_bytes(skb, DNS_OFF + offsetof(struct dnshdr, flags),
21: (07) r3 += -32
22: (bf) r1 = r6
23: (b7) r2 = 44
24: (b7) r4 = 2
25: (85) call bpf_skb_load_bytes#26
last_idx 25 first_idx 17
regs=10 stack=0 before 24: (b7) r4 = 2
26: (b7) r7 = 0
; if (err < 0)
27: (6d) if r7 s> r0 goto pc+271
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R6=ctx(id=0,off=0,imm=0) R7_w=inv0 R10=fp0 fp-32=??mmm?mm
; flags.flags = bpf_ntohs(flags.flags);
28: (69) r1 = *(u16 *)(r10 -32)
29: (dc) r1 = be16 r1
; flags.flags = bpf_ntohs(flags.flags);
30: (6b) *(u16 *)(r10 -32) = r1
31: (bf) r3 = r10
; flags.flags = bpf_ntohs(flags.flags);
32: (07) r3 += -34
; err = bpf_skb_load_bytes(skb,
33: (bf) r1 = r6
34: (b7) r2 = 46
35: (b7) r4 = 2
36: (85) call bpf_skb_load_bytes#26
last_idx 36 first_idx 26
regs=10 stack=0 before 35: (b7) r4 = 2
; if (err < 0)
37: (6d) if r7 s> r0 goto pc+261
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0 fp-32=??mmm?mm fp-40=mm??????
; qdcount = bpf_ntohs(qdcount);
38: (69) r1 = *(u16 *)(r10 -34)
39: (bf) r2 = r1
40: (dc) r2 = be16 r2
; qdcount = bpf_ntohs(qdcount);
41: (6b) *(u16 *)(r10 -34) = r2
; if (qdcount != 1)
42: (55) if r1 != 0x100 goto pc+256
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv256 R2_w=inv(id=0) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0 fp-32=??mmm?mm fp-40=mm??????
43: (bf) r3 = r10
;
44: (07) r3 += -36
; err = bpf_skb_load_bytes(skb,
45: (bf) r1 = r6
46: (b7) r2 = 48
47: (b7) r4 = 2
48: (85) call bpf_skb_load_bytes#26
last_idx 48 first_idx 37
regs=10 stack=0 before 47: (b7) r4 = 2
49: (b7) r7 = 0
; if (err < 0)
50: (6d) if r7 s> r0 goto pc+248
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R6=ctx(id=0,off=0,imm=0) R7_w=inv0 R10=fp0 fp-32=??mmm?mm fp-40=mmmm????
; ancount = bpf_ntohs(ancount);
51: (69) r1 = *(u16 *)(r10 -36)
52: (dc) r1 = be16 r1
; ancount = bpf_ntohs(ancount);
53: (6b) *(u16 *)(r10 -36) = r1
54: (bf) r3 = r10
; ancount = bpf_ntohs(ancount);
55: (07) r3 += -38
; err = bpf_skb_load_bytes(skb,
56: (bf) r1 = r6
57: (b7) r2 = 50
58: (b7) r4 = 2
59: (85) call bpf_skb_load_bytes#26
last_idx 59 first_idx 49
regs=10 stack=0 before 58: (b7) r4 = 2
; if (err < 0)
60: (6d) if r7 s> r0 goto pc+238
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0 fp-32=??mmm?mm fp-40=mmmmmm??
; nscount = bpf_ntohs(nscount);
61: (69) r1 = *(u16 *)(r10 -38)
62: (dc) r1 = be16 r1
; nscount = bpf_ntohs(nscount);
63: (6b) *(u16 *)(r10 -38) = r1
; if (flags.qr == 0 && ancount + nscount != 0)
64: (69) r2 = *(u16 *)(r10 -32)
65: (67) r2 <<= 48
66: (c7) r2 s>>= 48
67: (b7) r7 = 0
; if (flags.qr == 0 && ancount + nscount != 0)
68: (6d) if r7 s> r2 goto pc+3
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0) R2_w=inv(id=0,umax_value=32767,var_off=(0x0; 0x7fff)) R6=ctx(id=0,off=0,imm=0) R7_w=inv0 R10=fp0 fp-32=??mmm?mm fp-40=mmmmmm??
; if (flags.qr == 0 && ancount + nscount != 0)
69: (87) r1 = -r1
; if (flags.qr == 0 && ancount + nscount != 0)
70: (69) r2 = *(u16 *)(r10 -36)
; if (flags.qr == 0 && ancount + nscount != 0)
71: (5d) if r2 != r1 goto pc+227
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=0,umax_value=65535,var_off=(0x0; 0xffff)) R2=inv(id=0,umax_value=65535,var_off=(0x0; 0xffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R10=fp0 fp-32=??mmm?mm fp-40=mmmmmm??
72: (b7) r1 = 0
73: (b7) r9 = 0
74: (05) goto pc+24
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
last_idx 102 first_idx 71
regs=4 stack=0 before 101: (77) r2 >>= 32
regs=4 stack=0 before 100: (67) r2 <<= 32
regs=4 stack=0 before 99: (bf) r2 = r1
regs=2 stack=0 before 74: (05) goto pc+24
regs=2 stack=0 before 73: (b7) r9 = 0
regs=2 stack=0 before 72: (b7) r1 = 0
; err = bpf_skb_load_bytes(
75: (bf) r2 = r9
76: (07) r2 += 54
77: (bf) r3 = r10
;
78: (07) r3 += -24
; err = bpf_skb_load_bytes(
79: (bf) r1 = r6
80: (b7) r4 = 1
81: (85) call bpf_skb_load_bytes#26
last_idx 81 first_idx 75
regs=10 stack=0 before 80: (b7) r4 = 1
82: (bf) r8 = r9
83: (6d) if r7 s> r0 goto pc+9
R0_w=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv0 R9=inv0 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
84: (71) r1 = *(u8 *)(r10 -24)
85: (bf) r8 = r9
86: (15) if r1 == 0x0 goto pc+6
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8=inv0 R9=inv0 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 86
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
regs=200 stack=0 before 86: (15) if r1 == 0x0 goto pc+6
R0_w=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv0 R9_r=invP0 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 85 first_idx 75
regs=200 stack=0 before 85: (bf) r8 = r9
regs=200 stack=0 before 84: (71) r1 = *(u8 *)(r10 -24)
regs=200 stack=0 before 83: (6d) if r7 s> r0 goto pc+9
regs=200 stack=0 before 82: (bf) r8 = r9
regs=200 stack=0 before 81: (85) call bpf_skb_load_bytes#26
regs=200 stack=0 before 80: (b7) r4 = 1
regs=200 stack=0 before 79: (bf) r1 = r6
regs=200 stack=0 before 78: (07) r3 += -24
regs=200 stack=0 before 77: (bf) r3 = r10
regs=200 stack=0 before 76: (07) r2 += 54
regs=200 stack=0 before 75: (bf) r2 = r9
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv0 R2_w=inv0 R6_r=ctx(id=0,off=0,imm=0) R7_r=inv0 R9_rw=invP0 R10=fp0 fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 102 first_idx 71
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 74: (05) goto pc+24
regs=200 stack=0 before 73: (b7) r9 = 0
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=5,umax_value=255,var_off=(0x0; 0xff)) R2=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8=inv255 R9=inv1 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 92
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-1,smax_value=254) R2_rw=invP2 R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv2 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=4 stack=0 marks
last_idx 91 first_idx 102
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_r=inv(id=5,umax_value=255,var_off=(0x0; 0xff)) R2_rw=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP1 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 101 first_idx 86
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
regs=200 stack=0 before 86: (15) if r1 == 0x0 goto pc+6
R0_w=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv0 R9_r=invP0 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=7,smin_value=-1,smax_value=254) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8=inv255 R9=inv2 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 92
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-1,smax_value=254) R2_rw=invP2 R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=inv2 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=4 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=9,smin_value=-2,smax_value=253) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8=inv255 R9=inv3 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 99
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-2,smax_value=253) R2_w=inv3 R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP3 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 92 first_idx 92
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-1,smax_value=254) R2_rw=invP2 R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP2 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 91 first_idx 102
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_r=inv(id=5,umax_value=255,var_off=(0x0; 0xff)) R2_rw=inv(id=0,umax_value=255,var_off=(0x0; 0xff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP1 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=11,smin_value=-3,smax_value=252) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 104 first_idx 99
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-2,smax_value=253) R2_w=inv3 R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP3 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=13,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv5 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=15,smin_value=-5,smax_value=250) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv6 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=17,smin_value=-6,smax_value=249) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv7 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=19,smin_value=-7,smax_value=248) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv8 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=21,smin_value=-8,smax_value=247) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv9 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=23,smin_value=-9,smax_value=246) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv10 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=25,smin_value=-10,smax_value=245) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 104 first_idx 87
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-4,smax_value=251) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP4 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=27,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv12 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=29,smin_value=-12,smax_value=243) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv13 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=31,smin_value=-13,smax_value=242) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv14 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=33,smin_value=-14,smax_value=241) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv15 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=35,smin_value=-15,smax_value=240) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv16 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=37,smin_value=-16,smax_value=239) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv17 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=39,smin_value=-17,smax_value=238) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 104 first_idx 87
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-11,smax_value=244) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP11 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=41,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv19 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=43,smin_value=-19,smax_value=236) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv20 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=45,smin_value=-20,smax_value=235) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv21 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=47,smin_value=-21,smax_value=234) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv22 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=49,smin_value=-22,smax_value=233) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv23 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=51,smin_value=-23,smax_value=232) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv24 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=53,smin_value=-24,smax_value=231) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 104 first_idx 87
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-18,smax_value=237) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP18 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=55,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv26 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=57,smin_value=-26,smax_value=229) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv27 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=59,smin_value=-27,smax_value=228) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv28 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=61,smin_value=-28,smax_value=227) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv29 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=63,smin_value=-29,smax_value=226) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv30 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=65,smin_value=-30,smax_value=225) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv31 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=67,smin_value=-31,smax_value=224) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 104 first_idx 87
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-25,smax_value=230) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP25 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=69,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv33 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=71,smin_value=-33,smax_value=222) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv34 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=73,smin_value=-34,smax_value=221) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv35 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=75,smin_value=-35,smax_value=220) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv36 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=77,smin_value=-36,smax_value=219) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv37 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=79,smin_value=-37,smax_value=218) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv38 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=81,smin_value=-38,smax_value=217) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv39 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err = bpf_skb_load_bytes(
87: (b7) r8 = 255
; for (i = 0; i < MAX_DNS_NAME; i++) {
88: (07) r9 += 1
89: (bf) r2 = r9
90: (67) r2 <<= 32
91: (77) r2 >>= 32
; for (i = 0; i < MAX_DNS_NAME; i++) {
92: (55) if r2 != 0xff goto pc+6
last_idx 92 first_idx 87
regs=4 stack=0 before 91: (77) r2 >>= 32
regs=4 stack=0 before 90: (67) r2 <<= 32
regs=4 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_w=inv(id=0,smin_value=-39,smax_value=216) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP39 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent didn't have regs=200 stack=0 marks
last_idx 104 first_idx 87
regs=200 stack=0 before 104: (05) goto pc-18
regs=200 stack=0 before 103: (07) r1 += -1
regs=200 stack=0 before 102: (15) if r2 == 0x0 goto pc-28
regs=200 stack=0 before 101: (77) r2 >>= 32
regs=200 stack=0 before 100: (67) r2 <<= 32
regs=200 stack=0 before 99: (bf) r2 = r1
regs=200 stack=0 before 92: (55) if r2 != 0xff goto pc+6
regs=200 stack=0 before 91: (77) r2 >>= 32
regs=200 stack=0 before 90: (67) r2 <<= 32
regs=200 stack=0 before 89: (bf) r2 = r9
regs=200 stack=0 before 88: (07) r9 += 1
regs=200 stack=0 before 87: (b7) r8 = 255
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1_rw=inv(id=0,smin_value=-32,smax_value=223) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_rw=invP32 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
parent already had regs=200 stack=0 marks
; if (skip != 0) {
99: (bf) r2 = r1
100: (67) r2 <<= 32
101: (77) r2 >>= 32
; if (skip != 0) {
102: (15) if r2 == 0x0 goto pc-28
R0=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R1=inv(id=83,smin_value=-39,smax_value=216) R2_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff)) R6=ctx(id=0,off=0,imm=0) R7=inv0 R8_w=inv255 R9_w=inv40 R10=fp0 fp-24=???????m fp-32=??mmm?mm fp-40=mmmmmm??
; skip--;
103: (07) r1 += -1
104: (05) goto pc-18
; err =
(truncated)
Even if this log doesn't seem to be useful at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think ABI is very important now. That's why image-based gadgets is marked as experimental, to allow us to perform these kind of changes until the whole thing is more stable.
$ uname -a
Linux pwmachine 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux You can try to reduce the |
I use 6.6.13-100.fc38.x86_64 |
I can confirm it doesn't work for me on 5.15.0-100-generic. Full verifier log -> https://gist.github.com/mauriciovasquezbernal/2af889da4ee1d098c96af8cbefc96770 |
The code that causes problem to the verifier: bpf_map_update_elem(&query_map, &query_key,
&event->timestamp, BPF_NOEXIST); The error:
It complains that
It is a kernel bug that was fixed in Linux 5.17: See also patch "bpf: Rename MEM_ALLOC to MEM_RINGBUF" introduced in v6.2. I'll copy |
This requires to replace BPF_LD_[ABS|IND] instructions by explicit bpf helper bpf_skb_load_bytes(). Since bpf_skb_load_bytes() does not do automatic endianness conversion, it needs to be done explicitely as appropriate. Signed-off-by: Alban Crequy <albancrequy@linux.microsoft.com>
f589f46
to
5d125f4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It works now for me. Thanks for investigating and fixing it.
trace_dns: switch from perf ringbuf to bpf ringbuf
This requires to replace
BPF_LD_[ABS|IND]
instructions by explicit bpfhelper bpf_skb_load_bytes()
.Since
bpf_skb_load_bytes()
does not do automatic endianness conversion, it needs to be done explicitely as appropriate.Previous comment explaining the issue:
How to use
As before
Testing done
Compile:
Test:
Check that it uses the ringbuf map:
TODO, in a future PR