Skip to content

spt-ebpf

Real eBPF programs for SPT vector distance computation

Overview

spt-ebpf provides pre-written BPF C source programs and a compiler pipeline for building eBPF object files that accelerate SPT vector operations at the kernel level. Programs include XDP-based distance computation, socket-level port filtering, and TC-based query priority routing. Compiled programs are embedded in SPT stores with SHA3-256 integrity verification.

Key Features

  • BPF C source programs -- XDP distance computation, socket filtering, TC query routing
  • Clang-based compiler -- EbpfCompiler invokes clang to produce BPF ELF objects
  • Integrity verification -- SHA3-256 hashing of compiled ELF bytes
  • SPT store embedding -- CompiledProgram produces EbpfHeader for direct store integration
  • Configurable optimization -- O0 through O3 optimization levels

Dependencies

Key internal dependencies:

  • spt-types -- eBPF header types (EbpfHeader, EbpfProgramType, EbpfAttachType)
  • sha3 -- SHA3-256 integrity hashing
  • tempfile -- temporary file management during compilation

Usage

rust
use spt_ebpf::{EbpfCompiler, OptLevel};

let compiler = EbpfCompiler::new(OptLevel::O2);
// Compile a BPF C source into an ELF object
// let program = compiler.compile("xdp_distance.c")?;
// let header = program.to_ebpf_header(512);

API Reference

Core Types

TypeDescription
EbpfCompilerInvokes clang to compile BPF C sources into ELF objects
CompiledProgramHolds compiled ELF bytes, metadata, and SHA3-256 hash
OptLevelClang optimization level (O0, O1, O2, O3)
EbpfErrorError type for compilation and I/O failures

Released under the MIT License.