Add bpf() syscall feature check and readme update
authorBrenden Blanco <bblanco@plumgrid.com>
Mon, 9 Nov 2015 05:18:51 +0000 (21:18 -0800)
committerBrenden Blanco <bblanco@plumgrid.com>
Mon, 9 Nov 2015 05:18:51 +0000 (21:18 -0800)
Fixes: #283
Signed-off-by: Brenden Blanco <bblanco@plumgrid.com>
INSTALL.md
src/cc/export/helpers.h

index 103577c..4845951 100644 (file)
@@ -1,3 +1,18 @@
+# Kernel requirements
+
+## Requirements
+
+In general, to use these features, a Linux kernel version 4.1 or newer is
+required. In addition, the following flags should be set:
+
+- `CONFIG_BPF=y`
+- `CONFIG_BPF_SYSCALL=y`
+- `CONFIG_NET_CLS_BPF=m` [optional, for tc filters]
+- `CONFIG_NET_ACT_BPF=m` [optional, for tc actions]
+- `CONFIG_BPF_JIT=y`
+- `CONFIG_HAVE_BPF_JIT=y`
+- `CONFIG_BPF_EVENTS=y` [optional, for kprobes]
+
 # Ubuntu - Binary
 
 Install a 4.3+ kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline,
index cbf54af..fda04c0 100644 (file)
 #include <uapi/linux/if_packet.h>
 #include <linux/version.h>
 
+#ifndef CONFIG_BPF_SYSCALL
+#error "CONFIG_BPF_SYSCALL is undefined, please check your .config or ask your Linux distro to enable this feature"
+#endif
+
 /* helper macro to place programs, maps, license in
  * different sections in elf_bpf file. Section names
  * are interpreted by elf_bpf loader