summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/test_xdp_meta.c
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@netronome.com>2019-02-11 12:01:20 +0000
committerAlexei Starovoitov <ast@kernel.org>2019-02-11 20:31:38 -0800
commitbd4aed0ee73ca873bef3cb3ec746dd796f03df28 (patch)
tree1dcd4de735f8ca3dbf672dc5d48d064ea1dea5dc /tools/testing/selftests/bpf/test_xdp_meta.c
parent4836b4637ef080c2764c44ee40ed354cdb991d79 (diff)
selftests: bpf: centre kernel bpf objects under new subdir "progs"
At the moment, all kernel bpf objects are listed under BPF_OBJ_FILES. Listing them manually sometimes causing patch conflict when people are adding new testcases simultaneously. It is better to centre all the related source files under a subdir "progs", then auto-generate the object file list. Suggested-by: Alexei Starovoitov <ast@kernel.org> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/test_xdp_meta.c')
-rw-r--r--tools/testing/selftests/bpf/test_xdp_meta.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/tools/testing/selftests/bpf/test_xdp_meta.c b/tools/testing/selftests/bpf/test_xdp_meta.c
deleted file mode 100644
index 8d0182650653..000000000000
--- a/tools/testing/selftests/bpf/test_xdp_meta.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <linux/bpf.h>
-#include <linux/if_ether.h>
-#include <linux/pkt_cls.h>
-
-#include "bpf_helpers.h"
-
-#define __round_mask(x, y) ((__typeof__(x))((y) - 1))
-#define round_up(x, y) ((((x) - 1) | __round_mask(x, y)) + 1)
-#define ctx_ptr(ctx, mem) (void *)(unsigned long)ctx->mem
-
-SEC("t")
-int ing_cls(struct __sk_buff *ctx)
-{
- __u8 *data, *data_meta, *data_end;
- __u32 diff = 0;
-
- data_meta = ctx_ptr(ctx, data_meta);
- data_end = ctx_ptr(ctx, data_end);
- data = ctx_ptr(ctx, data);
-
- if (data + ETH_ALEN > data_end ||
- data_meta + round_up(ETH_ALEN, 4) > data)
- return TC_ACT_SHOT;
-
- diff |= ((__u32 *)data_meta)[0] ^ ((__u32 *)data)[0];
- diff |= ((__u16 *)data_meta)[2] ^ ((__u16 *)data)[2];
-
- return diff ? TC_ACT_SHOT : TC_ACT_OK;
-}
-
-SEC("x")
-int ing_xdp(struct xdp_md *ctx)
-{
- __u8 *data, *data_meta, *data_end;
- int ret;
-
- ret = bpf_xdp_adjust_meta(ctx, -round_up(ETH_ALEN, 4));
- if (ret < 0)
- return XDP_DROP;
-
- data_meta = ctx_ptr(ctx, data_meta);
- data_end = ctx_ptr(ctx, data_end);
- data = ctx_ptr(ctx, data);
-
- if (data + ETH_ALEN > data_end ||
- data_meta + round_up(ETH_ALEN, 4) > data)
- return XDP_DROP;
-
- __builtin_memcpy(data_meta, data, ETH_ALEN);
- return XDP_PASS;
-}
-
-char _license[] SEC("license") = "GPL";