diff options
author | John Fastabend <john.fastabend@gmail.com> | 2017-08-16 01:34:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-08-16 14:27:53 -0400 |
commit | 6f6d33f3b3d0f53799d120d28abd13ad90041549 (patch) | |
tree | dbd263882c3bc49c8bc1d7a08b7d0eadd0f4ddb3 /tools/lib/bpf/libbpf.c | |
parent | 41bc94f535ef454e325a6d4db085ec345376de6c (diff) |
bpf: selftests add sockmap tests
This generates a set of sockets, attaches BPF programs, and sends some
simple traffic using basic send/recv pattern. Additionally, we do a bunch
of negative tests to ensure adding/removing socks out of the sockmap fail
correctly.
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/lib/bpf/libbpf.c')
-rw-r--r-- | tools/lib/bpf/libbpf.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 1a2c07eb7795..1cc3ea0ffdc3 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c | |||
@@ -1744,3 +1744,32 @@ long libbpf_get_error(const void *ptr) | |||
1744 | return PTR_ERR(ptr); | 1744 | return PTR_ERR(ptr); |
1745 | return 0; | 1745 | return 0; |
1746 | } | 1746 | } |
1747 | |||
1748 | int bpf_prog_load(const char *file, enum bpf_prog_type type, | ||
1749 | struct bpf_object **pobj, int *prog_fd) | ||
1750 | { | ||
1751 | struct bpf_program *prog; | ||
1752 | struct bpf_object *obj; | ||
1753 | int err; | ||
1754 | |||
1755 | obj = bpf_object__open(file); | ||
1756 | if (IS_ERR(obj)) | ||
1757 | return -ENOENT; | ||
1758 | |||
1759 | prog = bpf_program__next(NULL, obj); | ||
1760 | if (!prog) { | ||
1761 | bpf_object__close(obj); | ||
1762 | return -ENOENT; | ||
1763 | } | ||
1764 | |||
1765 | bpf_program__set_type(prog, type); | ||
1766 | err = bpf_object__load(obj); | ||
1767 | if (err) { | ||
1768 | bpf_object__close(obj); | ||
1769 | return -EINVAL; | ||
1770 | } | ||
1771 | |||
1772 | *pobj = obj; | ||
1773 | *prog_fd = bpf_program__fd(prog); | ||
1774 | return 0; | ||
1775 | } | ||