Thread (14 messages) flat view 14 messages, 4 authors, 2016-11-02

Re: [PATCH net-next 2/3] tools lib bpf: Sync with samples/bpf/libbpf

From: Joe Stringer <hidden>
Date: 2016-11-02 03:50:35

On 1 November 2016 at 19:52, Daniel Borkmann [off-list ref] wrote:
On 10/31/2016 07:39 PM, Joe Stringer wrote:
quoted
Extend the tools/ version of libbpf to include all of the functionality
provided in the samples/bpf version.

Signed-off-by: Joe Stringer <redacted>
---
  tools/lib/bpf/bpf.c    | 139 +++++++++++++++++++++++++++------
  tools/lib/bpf/bpf.h    | 208
+++++++++++++++++++++++++++++++++++++++++++++++--
  tools/lib/bpf/libbpf.c |   3 +-
  3 files changed, 317 insertions(+), 33 deletions(-)
[...]
quoted
+int open_raw_sock(const char *name)
+{
+       struct sockaddr_ll sll;
+       int sock;
+
+       sock = socket(PF_PACKET, SOCK_RAW | SOCK_NONBLOCK | SOCK_CLOEXEC,
+                     htons(ETH_P_ALL));
+       if (sock < 0) {
+               printf("cannot create raw socket\n");
+               return -1;
+       }
+
+       memset(&sll, 0, sizeof(sll));
+       sll.sll_family = AF_PACKET;
+       sll.sll_ifindex = if_nametoindex(name);
+       sll.sll_protocol = htons(ETH_P_ALL);
+       if (bind(sock, (struct sockaddr *)&sll, sizeof(sll)) < 0) {
+               printf("bind to %s: %s\n", name, strerror(errno));
+               close(sock);
+               return -1;
+       }
+
+       return sock;
+}
+
+int perf_event_open(struct perf_event_attr *attr, int pid, int cpu,
+                   int group_fd, unsigned long flags)
+{
+       return syscall(__NR_perf_event_open, attr, pid, cpu,
+                      group_fd, flags);
  }

I'm actually wondering, above bits are not really libbpf related. Maybe
these should go elsewhere into some other misc header file just for the
samples to use?
True, I started this patch by just copying the whole file over to
tools/lib/bpf so this came with it. I can bring it back to the samples
directory in v2.
quoted
diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h
index e8ba54087497..227edb23c022 100644
--- a/tools/lib/bpf/bpf.h
+++ b/tools/lib/bpf/bpf.h
@@ -23,16 +23,208 @@

  #include <linux/bpf.h>

+struct bpf_insn;
+

Isn't that already defined in the above uapi bpf.h anyway?
Yup, I'll drop this bit.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help