diff options
author | Andrii Nakryiko <andriin@fb.com> | 2019-10-15 23:00:50 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-10-17 12:15:08 -0700 |
commit | 5ac93074b581984d67926d48b2c601b12b35a0f9 (patch) | |
tree | 1a070f5aee309e50b5727bc00121dd26c95efbe9 /tools/testing/selftests/bpf/test_queue_stack_map.h | |
parent | 74b5a5968fe8742205a86234bb99d493bcd5ecee (diff) | |
download | talos-op-linux-5ac93074b581984d67926d48b2c601b12b35a0f9.tar.gz talos-op-linux-5ac93074b581984d67926d48b2c601b12b35a0f9.zip |
selftests/bpf: Move test_queue_stack_map.h into progs/ where it belongs
test_queue_stack_map.h is used only from BPF programs. Thus it should be
part of progs/ subdir. An added benefit of moving it there is that new
TEST_RUNNER_DEFINE_RULES macro-rule will properly capture dependency on
this header for all BPF objects and trigger re-build, if it changes.
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191016060051.2024182-7-andriin@fb.com
Diffstat (limited to 'tools/testing/selftests/bpf/test_queue_stack_map.h')
-rw-r--r-- | tools/testing/selftests/bpf/test_queue_stack_map.h | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/tools/testing/selftests/bpf/test_queue_stack_map.h b/tools/testing/selftests/bpf/test_queue_stack_map.h deleted file mode 100644 index 0e014d3b2b36..000000000000 --- a/tools/testing/selftests/bpf/test_queue_stack_map.h +++ /dev/null @@ -1,59 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -// Copyright (c) 2018 Politecnico di Torino -#include <stddef.h> -#include <string.h> -#include <linux/bpf.h> -#include <linux/if_ether.h> -#include <linux/ip.h> -#include <linux/pkt_cls.h> -#include "bpf_helpers.h" - -int _version SEC("version") = 1; - -struct { - __uint(type, MAP_TYPE); - __uint(max_entries, 32); - __uint(map_flags, 0); - __uint(key_size, 0); - __uint(value_size, sizeof(__u32)); -} map_in SEC(".maps"); - -struct { - __uint(type, MAP_TYPE); - __uint(max_entries, 32); - __uint(map_flags, 0); - __uint(key_size, 0); - __uint(value_size, sizeof(__u32)); -} map_out SEC(".maps"); - -SEC("test") -int _test(struct __sk_buff *skb) -{ - void *data_end = (void *)(long)skb->data_end; - void *data = (void *)(long)skb->data; - struct ethhdr *eth = (struct ethhdr *)(data); - __u32 value; - int err; - - if (eth + 1 > data_end) - return TC_ACT_SHOT; - - struct iphdr *iph = (struct iphdr *)(eth + 1); - - if (iph + 1 > data_end) - return TC_ACT_SHOT; - - err = bpf_map_pop_elem(&map_in, &value); - if (err) - return TC_ACT_SHOT; - - iph->daddr = value; - - err = bpf_map_push_elem(&map_out, &iph->saddr, 0); - if (err) - return TC_ACT_SHOT; - - return TC_ACT_OK; -} - -char _license[] SEC("license") = "GPL"; |