|
Thomas Liske
d747da6a30
forwarder: refactor sources, seems not to crash any more
rtnlmon: add more RWLocks |
||
|---|---|---|
| xcceleroute | forwarder: refactor sources, seems not to crash any more | |
| xcceleroute-common | Initial commit | |
| xcceleroute-ebpf | formatting | |
| .gitignore | Initial commit | |
| Cargo.lock | rtnlmon: prepare building route trie | |
| Cargo.toml | Initial commit | |
| devrun.sh | forwarder: initial implementation | |
| flake.lock | nix: init; minor cleanups | |
| flake.nix | nix: fix rustup mock | |
| LICENSE | Initial commit | |
| README.md | Initial commit | |
| rustfmt.toml | Initial commit | |
xcceleroute
This project is WIP.
Linux routing accelerator based on XDP. Xcceleroute can be used to forward (route) traffic between interfaces by-passing most of the Linux kernel IP stack.
License
Xcceleroute is distributed under the terms of the GNU General Public License, Version 2 or later. of either the [MIT license] or the [Apache License] (version 2.0), at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Development
Prerequisites
- stable rust toolchains:
rustup toolchain install stable - nightly rust toolchains:
rustup toolchain install nightly --component rust-src - (if cross-compiling) rustup target:
rustup target add ${ARCH}-unknown-linux-musl - (if cross-compiling) LLVM: (e.g.)
brew install llvm(on macOS) - (if cross-compiling) C toolchain: (e.g.)
brew install filosottile/musl-cross/musl-cross(on macOS) - bpf-linker:
cargo install bpf-linker(--no-default-featureson macOS)
Build & Run
Use cargo build, cargo check, etc. as normal. Run your program with:
cargo run --release
Cargo build scripts are used to automatically build the eBPF correctly and include it in the program.