Skip to content

Prerequisites & Kernel Requirements

Because ATRVASA operates directly at the kernel level using advanced eBPF features, it requires specific Linux kernel capabilities and a modern development toolchain.

Whether you are deploying the pre-compiled binaries or building ATRVASA from source, please ensure your environment meets the following requirements.

1. Linux Kernel Requirements

ATRVASA utilizes modern eBPF map types (such as Ring Buffers for the Shadow API Detector) and BPF Type Format (BTF) for kernel portability without requiring local kernel headers.

  • Minimum Kernel Version: Linux Kernel 5.8 (Required for BPF_MAP_TYPE_RINGBUF).
  • Recommended Kernel Version: Linux Kernel 5.15 LTS or newer (Provides mature CO-RE support, bpf_link attachments, and improved TC/SockOps performance).
  • BTF Support: The kernel must be compiled with CONFIG_DEBUG_INFO_BTF=y. You can verify this by checking if the BTF file exists on your system:
bash
  ls -l /sys/kernel/btf/vmlinux

(If missing, ATRVASA cannot perform CO-RE relocations and will fail to load the eBPF bytecode).

2. System Privileges

Loading eBPF programs into the kernel and intercepting network traffic via Traffic Control (TC) or sockets requires elevated privileges.

The ATRVASA daemon must be executed with either:

  • root (sudo) access, OR
  • Specific Linux capabilities: CAP_BPF, CAP_NET_ADMIN, and CAP_PERFMON.

3. Development Toolchain (For Building from Source)

If you plan to compile ATRVASA, modify the Rust control-plane, or tweak the eBPF C/Rust data-plane, you will need the following dependencies installed on your build machine.

A. Rust & Cargo

ATRVASA is built with Rust and relies on the Aya framework for eBPF interoperability.

bash
# Install the standard Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh

# Install the rust-src component (Required by Aya for eBPF targets)
rustup component add rust-src --toolchain nightly

Note: ATRVASA compiles its user-space daemon on the stable channel, but compiling the eBPF bytecode currently requires the nightly channel.

B. LLVM & Clang

Even though ATRVASA is Rust-native, the LLVM compiler infrastructure is required to link and compile BPF bytecode target architectures (bpfel-unknown-none or bpfeb-unknown-none).

  • Ubuntu / Debian:
bash
sudo apt install llvm clang
  • Fedora / RHEL:
bash
sudo dnf install llvm clang
  • Arch Linux:
bash
sudo pacman -S llvm clang

For debugging and inspecting eBPF maps and programs attached by ATRVASA, the official Linux bpftool is highly recommended.

bash
# Ubuntu/Debian
sudo apt install linux-tools-common linux-tools-generic

# Verify installation
bpftool prog show

Next Steps

Once your environment is ready and your kernel supports the required eBPF features, you can proceed to the Quickstart Guide to deploy the ATRVASA ecosystem.

Released under Multiple Licenses (Open-Core model).