[[eupf_setup]] == eupf setup [[eupf_install]] === eupf go 1.23 install [[eupf_install]] === eupf install Install eupf dependencies: ---- $ sudo apt install wget git clang llvm gcc-multilib libbpf-dev golang ---- Install go 1.23 (go 1.19.8 coming with debian12 is too old): ---- $ cd /tmp $ wget https://go.dev/dl/go1.23.7.linux-amd64.tar.gz $ sudo tar -C /opt/ -zxvf go1.23.7.linux-amd64.tar.gz $ mkdir -p ~/go/{bin,pkg,src} ---- Add to .bashrc: ---- export GOPATH=$HOME/go export GOROOT=/opt/go export PATH="$GOPATH/bin:$GOROOT/bin:${PATH}" export GO111MODULE=auto $ source ~/.bashrc ---- Download eupf: ---- $ mkdir $HOME/git $ cd $HOME/git $ git clone https://github.com/edgecomllc/eupf.git ---- Install swag: ---- $ cd $HOME $ go install github.com/swaggo/swag/cmd/swag@v1.8.12 ---- Build & install eupf: ---- $ cd ~/git/eupf $ go generate -v ./cmd/... $ go build -v -o bin/eupf ./cmd/ $ sudo cp bin/eupf /usr/local/bin/eupf ---- [[eupf_debug]] === eupf debug To enable XDP tracing, recompile like this: ---- $ cd ~/git/eupf $ BPF_CFLAGS="-DENABLE_LOG" go generate -v ./cmd/... $ go build -v -o bin/eupf ./cmd/ $ sudo cp bin/eupf /usr/local/bin/eupf ---- Then start eupf, run the test, cat will keep reading until killed, and you'll get output generated by the xdp code: ---- $ cat /sys/kernel/debug/tracing/trace_pipe ----