mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
Support simple XDP
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
BPF_CLANG := clang
|
||||
CFLAGS := -O0 -emit-llvm -target bpf -c
|
||||
CFLAGS := -O2 -emit-llvm -target bpf -c
|
||||
|
||||
SRC := $(wildcard *.bpf.c)
|
||||
LL := $(SRC:.bpf.c=.bpf.ll)
|
||||
|
||||
@ -3,20 +3,10 @@
|
||||
#define u64 unsigned long long
|
||||
#define u32 unsigned int
|
||||
|
||||
struct {
|
||||
__uint(type, BPF_MAP_TYPE_HASH);
|
||||
__uint(max_entries, 1);
|
||||
__type(key, u32);
|
||||
__type(value, u64);
|
||||
} last SEC(".maps");
|
||||
|
||||
SEC("tracepoint/syscalls/sys_enter_execve")
|
||||
int hello(struct pt_regs *ctx) {
|
||||
SEC("xdp")
|
||||
int hello(struct xdp_md *ctx) {
|
||||
bpf_printk("Hello, World!\n");
|
||||
u64 b;
|
||||
u64 a = 3 * b;
|
||||
bpf_printk("%d", a);
|
||||
return 0;
|
||||
return XDP_PASS;
|
||||
}
|
||||
|
||||
char LICENSE[] SEC("license") = "GPL";
|
||||
|
||||
@ -22,11 +22,23 @@ case "$1" in
|
||||
sudo rm -f "$PIN_PATH"
|
||||
echo "[+] Stopped"
|
||||
;;
|
||||
xdp)
|
||||
echo "[*] Loading and running $FILE"
|
||||
sudo bpftool net detach xdp dev $3
|
||||
sudo bpftool prog load "$FILE" "$PIN_PATH" type xdp
|
||||
sudo bpftool net attach xdp pinned "$PIN_PATH" dev $3
|
||||
echo "[+] Program loaded. Press Ctrl+C to stop"
|
||||
sudo cat /sys/kernel/debug/tracing/trace_pipe
|
||||
sudo bpftool net detach xdp dev $3
|
||||
sudo rm -rf "$PIN_PATH"
|
||||
echo "[+] Stopped"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 <check|run|stop> <file.o>"
|
||||
echo "Examples:"
|
||||
echo " $0 check program.bpf.o"
|
||||
echo " $0 run program.bpf.o"
|
||||
echo " $0 xdp program.bpf.o wlp6s0"
|
||||
echo " $0 stop"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user