/linux-6.12.1/tools/testing/selftests/bpf/progs/ |
D | tailcall1.c | 11 } jmp_table SEC(".maps"); 29 bpf_tail_call_static(skb, &jmp_table, 0); in entry() 30 bpf_tail_call_static(skb, &jmp_table, 0); in entry() 31 bpf_tail_call_static(skb, &jmp_table, 0); in entry() 32 bpf_tail_call_static(skb, &jmp_table, 0); in entry() 34 bpf_tail_call_static(skb, &jmp_table, 1); in entry() 35 bpf_tail_call_static(skb, &jmp_table, 1); in entry() 36 bpf_tail_call_static(skb, &jmp_table, 1); in entry() 37 bpf_tail_call_static(skb, &jmp_table, 1); in entry() 39 bpf_tail_call_static(skb, &jmp_table, 2); in entry() [all …]
|
D | tailcall2.c | 11 } jmp_table SEC(".maps"); 16 bpf_tail_call_static(skb, &jmp_table, 1); in classifier_0() 23 bpf_tail_call_static(skb, &jmp_table, 2); in classifier_1() 36 bpf_tail_call_static(skb, &jmp_table, 4); in classifier_3() 43 bpf_tail_call_static(skb, &jmp_table, 3); in classifier_4() 50 bpf_tail_call_static(skb, &jmp_table, 0); in entry() 52 bpf_tail_call_static(skb, &jmp_table, 2); in entry() 54 bpf_tail_call_static(skb, &jmp_table, 3); in entry()
|
D | tailcall_bpf2bpf2.c | 11 } jmp_table SEC(".maps"); 17 bpf_tail_call_static(skb, &jmp_table, 1); in subprog_tail() 19 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail() 35 bpf_tail_call_static(skb, &jmp_table, 0); in entry()
|
D | tailcall_bpf2bpf3.c | 12 } jmp_table SEC(".maps"); 20 bpf_tail_call_static(skb, &jmp_table, 10); in subprog_tail2() 22 bpf_tail_call_static(skb, &jmp_table, 1); in subprog_tail2() 34 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail()
|
D | tailcall_bpf2bpf4.c | 17 } jmp_table SEC(".maps"); 35 bpf_tail_call_static(skb, &jmp_table, 2); in subprog_tail_2() 42 bpf_tail_call_static(skb, &jmp_table, 1); in subprog_tail_1() 49 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail()
|
D | tailcall3.c | 11 } jmp_table SEC(".maps"); 19 bpf_tail_call_static(skb, &jmp_table, 0); in classifier_0() 26 bpf_tail_call_static(skb, &jmp_table, 0); in entry()
|
D | tailcall6.c | 11 } jmp_table SEC(".maps"); 21 bpf_tail_call(skb, &jmp_table, which); in classifier_0() 30 bpf_tail_call(skb, &jmp_table, which); in entry()
|
D | tailcall_bpf2bpf1.c | 10 } jmp_table SEC(".maps"); 24 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail() 32 bpf_tail_call_static(skb, &jmp_table, 1); in entry()
|
D | tailcall_bpf2bpf_hierarchy2.c | 14 } jmp_table SEC(".maps") = { 27 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail0() 43 bpf_tail_call_static(skb, &jmp_table, 1); in subprog_tail1()
|
D | tailcall_freplace.c | 11 } jmp_table SEC(".maps"); 19 bpf_tail_call_static(skb, &jmp_table, 0); in entry_freplace()
|
D | lsm_tailcall.c | 15 } jmp_table SEC(".maps"); 32 bpf_tail_call_static(ctx, &jmp_table, 0); in lsm_file_alloc_security_entry()
|
D | tailcall_poke.c | 13 } jmp_table SEC(".maps"); 18 bpf_tail_call_static(ctx, &jmp_table, 0); in BPF_PROG()
|
D | tailcall_bpf2bpf_hierarchy_fentry.c | 13 } jmp_table SEC(".maps"); 20 bpf_tail_call_static(ctx, &jmp_table, 0); in subprog_tail()
|
D | tailcall_bpf2bpf_hierarchy1.c | 11 } jmp_table SEC(".maps"); 18 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail()
|
D | tailcall4.c | 11 } jmp_table SEC(".maps"); 28 bpf_tail_call(skb, &jmp_table, selector); in entry()
|
D | tailcall5.c | 11 } jmp_table SEC(".maps"); 35 bpf_tail_call(skb, &jmp_table, idx); in entry()
|
D | bpf_flow.c | 66 } jmp_table SEC(".maps"); 122 bpf_tail_call_static(skb, &jmp_table, IP); in parse_eth_proto() 125 bpf_tail_call_static(skb, &jmp_table, IPV6); in parse_eth_proto() 129 bpf_tail_call_static(skb, &jmp_table, MPLS); in parse_eth_proto() 133 bpf_tail_call_static(skb, &jmp_table, VLAN); in parse_eth_proto() 263 bpf_tail_call_static(skb, &jmp_table, IPV6OP); in parse_ipv6_proto() 266 bpf_tail_call_static(skb, &jmp_table, IPV6FR); in parse_ipv6_proto()
|
D | tailcall_bpf2bpf6.c | 13 } jmp_table SEC(".maps"); 30 bpf_tail_call_static(skb, &jmp_table, 0); in subprog_tail()
|
D | tailcall_bpf2bpf_hierarchy3.c | 33 int subprog_tail(struct __sk_buff *skb, void *jmp_table) in subprog_tail() argument 35 bpf_tail_call_static(skb, jmp_table, 0); in subprog_tail()
|
D | verifier_tailcall_jit.c | 13 } jmp_table SEC(".maps") = { 28 : __imm_addr(jmp_table) in sub()
|
D | exceptions.c | 19 } jmp_table SEC(".maps"); 100 bpf_tail_call_static(ctx, &jmp_table, 0); in exception_tail_call_subprog()
|
/linux-6.12.1/tools/testing/selftests/bpf/prog_tests/ |
D | tailcalls.c | 951 map_fd = bpf_map__fd(obj->maps.jmp_table); in test_tailcall_bpf2bpf_6() 1123 map_fd = bpf_map__fd(call->maps.jmp_table); in poke_update() 1156 err = bpf_map__pin(call->maps.jmp_table, JMP_TABLE); in test_tailcall_poke() 1169 err = bpf_map__set_pin_path(test->maps.jmp_table, JMP_TABLE); in test_tailcall_poke() 1189 bpf_map__unpin(call->maps.jmp_table, JMP_TABLE); in test_tailcall_poke() 1541 map_fd = bpf_map__fd(freplace_skel->maps.jmp_table); in test_tailcall_freplace()
|
D | test_lsm.c | 129 map_fd = bpf_map__fd(skel->maps.jmp_table); in test_lsm_tailcall()
|
D | exceptions.c | 36 if (!ASSERT_OK(bpf_map_update_elem(bpf_map__fd(skel->maps.jmp_table), &(int){0}, in test_exceptions_success()
|
/linux-6.12.1/Documentation/bpf/ |
D | prog_flow_dissector.rst | 130 * ``jmp_table`` map that contains sub-programs for each supported L3 protocol 135 jmp_table is used instead to handle multiple levels of encapsulation (and
|