Skip to content

Instantly share code, notes, and snippets.

@nevermosby
Created May 24, 2020 06:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nevermosby/f416fe021b4176117887804a0ce9dc70 to your computer and use it in GitHub Desktop.
Save nevermosby/f416fe021b4176117887804a0ce9dc70 to your computer and use it in GitHub Desktop.
bpf program cannot loaded into kernel if the program contains not-inlined functions
Disassembly of section tc:
tc_drop_tcp:
0: bf 16 00 00 00 00 00 00 r6 = r1
1: b7 01 00 00 69 6f 6e 0a r1 = 175009641
2: 63 1a f8 ff 00 00 00 00 *(u32 *)(r10 - 8) = r1
3: 18 01 00 00 20 74 63 20 00 00 00 00 73 65 63 74 r1 = 8386658476233028640 ll
5: 7b 1a f0 ff 00 00 00 00 *(u64 *)(r10 - 16) = r1
6: 18 01 00 00 45 6e 74 65 00 00 00 00 72 69 6e 67 r1 = 7453010373394067013 ll
8: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1
9: b7 01 00 00 00 00 00 00 r1 = 0
10: 73 1a fc ff 00 00 00 00 *(u8 *)(r10 - 4) = r1
11: bf a1 00 00 00 00 00 00 r1 = r10
12: 07 01 00 00 e8 ff ff ff r1 += -24
13: b7 02 00 00 15 00 00 00 r2 = 21
14: 85 00 00 00 06 00 00 00 call 6
15: 61 62 50 00 00 00 00 00 r2 = *(u32 *)(r6 + 80)
16: 61 61 4c 00 00 00 00 00 r1 = *(u32 *)(r6 + 76)
17: 85 10 00 00 ff ff ff ff call -1
18: bf 01 00 00 00 00 00 00 r1 = r0
19: b7 00 00 00 02 00 00 00 r0 = 2
20: 55 01 01 00 00 00 00 00 if r1 != 0 goto +1 <LBB2_2>
21: b7 00 00 00 00 00 00 00 r0 = 0
LBB2_2:
22: 95 00 00 00 00 00 00 00 exit
is_TCP:
0: bf 16 00 00 00 00 00 00 r6 = r1
1: b7 07 00 00 00 00 00 00 r7 = 0
2: 07 01 00 00 0e 00 00 00 r1 += 14
3: 2d 21 63 00 00 00 00 00 if r1 > r2 goto +99 <LBB1_5>
4: 71 61 0c 00 00 00 00 00 r1 = *(u8 *)(r6 + 12)
5: 71 63 0d 00 00 00 00 00 r3 = *(u8 *)(r6 + 13)
6: 67 03 00 00 08 00 00 00 r3 <<= 8
7: 4f 13 00 00 00 00 00 00 r3 |= r1
8: 55 03 5e 00 08 00 00 00 if r3 != 8 goto +94 <LBB1_5>
9: b7 01 00 00 00 00 00 00 r1 = 0
10: bf 63 00 00 00 00 00 00 r3 = r6
11: 07 03 00 00 22 00 00 00 r3 += 34
12: 2d 23 59 00 00 00 00 00 if r3 > r2 goto +89 <LBB1_4>
13: 61 68 1e 00 00 00 00 00 r8 = *(u32 *)(r6 + 30)
14: 61 69 1a 00 00 00 00 00 r9 = *(u32 *)(r6 + 26)
15: 18 01 00 00 61 64 64 72 00 00 00 00 2e 2e 2e 0a r1 = 733574566330524769 ll
17: 7b 1a f0 ff 00 00 00 00 *(u64 *)(r10 - 16) = r1
18: 18 01 00 00 72 69 6e 74 00 00 00 00 20 69 70 20 r1 = 2337483794718550386 ll
20: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1
21: 18 01 00 00 74 72 79 20 00 00 00 00 74 6f 20 70 r1 = 8079580276054389364 ll
23: 7b 1a e0 ff 00 00 00 00 *(u64 *)(r10 - 32) = r1
24: b7 07 00 00 00 00 00 00 r7 = 0
25: 73 7a f8 ff 00 00 00 00 *(u8 *)(r10 - 8) = r7
26: bf a1 00 00 00 00 00 00 r1 = r10
27: 07 01 00 00 e0 ff ff ff r1 += -32
28: b7 02 00 00 19 00 00 00 r2 = 25
29: 85 00 00 00 06 00 00 00 call 6
30: 18 01 00 00 2e 25 64 2e 00 00 00 00 25 64 0a 00 r1 = 2924860621989166 ll
32: 7b 1a f0 ff 00 00 00 00 *(u64 *)(r10 - 16) = r1
33: 18 01 00 00 64 64 72 31 00 00 00 00 3a 20 25 64 r1 = 7216209412240860260 ll
35: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1
36: 18 01 00 00 73 72 63 20 00 00 00 00 69 70 20 61 r1 = 6998717417751016051 ll
38: 7b 1a e0 ff 00 00 00 00 *(u64 *)(r10 - 32) = r1
39: bf 94 00 00 00 00 00 00 r4 = r9
40: 77 04 00 00 08 00 00 00 r4 >>= 8
41: 57 04 00 00 ff 00 00 00 r4 &= 255
42: bf 95 00 00 00 00 00 00 r5 = r9
43: 77 05 00 00 10 00 00 00 r5 >>= 16
44: 57 05 00 00 ff 00 00 00 r5 &= 255
45: bf 93 00 00 00 00 00 00 r3 = r9
46: 57 03 00 00 ff 00 00 00 r3 &= 255
47: bf a1 00 00 00 00 00 00 r1 = r10
48: 07 01 00 00 e0 ff ff ff r1 += -32
49: b7 02 00 00 18 00 00 00 r2 = 24
50: 85 00 00 00 06 00 00 00 call 6
51: b7 01 00 00 0a 00 00 00 r1 = 10
52: 6b 1a f0 ff 00 00 00 00 *(u16 *)(r10 - 16) = r1
53: 18 01 00 00 64 64 72 32 00 00 00 00 3a 2e 25 64 r1 = 7216224805420426340 ll
55: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1
56: 18 01 00 00 73 72 63 20 00 00 00 00 69 70 20 61 r1 = 6998717417751016051 ll
58: 7b 1a e0 ff 00 00 00 00 *(u64 *)(r10 - 32) = r1
59: 77 09 00 00 18 00 00 00 r9 >>= 24
60: bf a1 00 00 00 00 00 00 r1 = r10
61: 07 01 00 00 e0 ff ff ff r1 += -32
62: b7 02 00 00 12 00 00 00 r2 = 18
63: bf 93 00 00 00 00 00 00 r3 = r9
64: 85 00 00 00 06 00 00 00 call 6
65: 18 01 00 00 64 2e 25 64 00 00 00 00 2e 25 64 0a r1 = 748764319229226596 ll
67: 7b 1a f0 ff 00 00 00 00 *(u64 *)(r10 - 16) = r1
68: 18 01 00 00 61 64 64 72 00 00 00 00 31 3a 20 25 r1 = 2675202162705065057 ll
70: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1
71: bf 84 00 00 00 00 00 00 r4 = r8
72: 77 04 00 00 08 00 00 00 r4 >>= 8
73: 57 04 00 00 ff 00 00 00 r4 &= 255
74: bf 85 00 00 00 00 00 00 r5 = r8
75: 77 05 00 00 10 00 00 00 r5 >>= 16
76: 57 05 00 00 ff 00 00 00 r5 &= 255
77: 73 7a f8 ff 00 00 00 00 *(u8 *)(r10 - 8) = r7
78: 18 09 00 00 64 65 73 74 00 00 00 00 20 69 70 20 r9 = 2337483794718877028 ll
80: 7b 9a e0 ff 00 00 00 00 *(u64 *)(r10 - 32) = r9
81: bf 83 00 00 00 00 00 00 r3 = r8
82: 57 03 00 00 ff 00 00 00 r3 &= 255
83: bf a1 00 00 00 00 00 00 r1 = r10
84: 07 01 00 00 e0 ff ff ff r1 += -32
85: b7 02 00 00 19 00 00 00 r2 = 25
86: 85 00 00 00 06 00 00 00 call 6
87: b7 01 00 00 25 64 0a 00 r1 = 680997
88: 63 1a f0 ff 00 00 00 00 *(u32 *)(r10 - 16) = r1
89: 18 01 00 00 61 64 64 72 00 00 00 00 32 3a 20 2e r1 = 3323720513341383777 ll
91: 7b 1a e8 ff 00 00 00 00 *(u64 *)(r10 - 24) = r1
92: 7b 9a e0 ff 00 00 00 00 *(u64 *)(r10 - 32) = r9
93: 77 08 00 00 18 00 00 00 r8 >>= 24
94: bf a1 00 00 00 00 00 00 r1 = r10
95: 07 01 00 00 e0 ff ff ff r1 += -32
96: b7 02 00 00 14 00 00 00 r2 = 20
97: bf 83 00 00 00 00 00 00 r3 = r8
98: 85 00 00 00 06 00 00 00 call 6
99: b7 01 00 00 01 00 00 00 r1 = 1
100: 71 62 17 00 00 00 00 00 r2 = *(u8 *)(r6 + 23)
101: 55 02 01 00 06 00 00 00 if r2 != 6 goto +1 <LBB1_5>
LBB1_4:
102: bf 17 00 00 00 00 00 00 r7 = r1
LBB1_5:
103: bf 70 00 00 00 00 00 00 r0 = r7
104: 95 00 00 00 00 00 00 00 exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment