]>
git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - samples/bpf/libbpf.c
1 /* eBPF mini library */
4 #include <linux/unistd.h>
8 #include <net/ethernet.h>
10 #include <linux/if_packet.h>
11 #include <arpa/inet.h>
14 int open_raw_sock(const char *name
)
16 struct sockaddr_ll sll
;
19 sock
= socket(PF_PACKET
, SOCK_RAW
| SOCK_NONBLOCK
| SOCK_CLOEXEC
, htons(ETH_P_ALL
));
21 printf("cannot create raw socket\n");
25 memset(&sll
, 0, sizeof(sll
));
26 sll
.sll_family
= AF_PACKET
;
27 sll
.sll_ifindex
= if_nametoindex(name
);
28 sll
.sll_protocol
= htons(ETH_P_ALL
);
29 if (bind(sock
, (struct sockaddr
*)&sll
, sizeof(sll
)) < 0) {
30 printf("bind to %s: %s\n", name
, strerror(errno
));
38 int perf_event_open(struct perf_event_attr
*attr
, int pid
, int cpu
,
39 int group_fd
, unsigned long flags
)
41 return syscall(__NR_perf_event_open
, attr
, pid
, cpu
,