mirror of https://github.com/aya-rs/aya
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
867 B
Rust
34 lines
867 B
Rust
3 years ago
|
//! ```cargo
|
||
|
//! [dependencies]
|
||
|
//! log = "0.4"
|
||
|
//! simplelog = "0.11"
|
||
|
//! aya = { path = "../../../../aya" }
|
||
|
//! ```
|
||
|
|
||
|
use aya::{
|
||
|
Bpf,
|
||
|
programs::{Xdp, XdpFlags},
|
||
|
};
|
||
|
use log::info;
|
||
|
use std::convert::TryInto;
|
||
|
|
||
|
use simplelog::{ColorChoice, ConfigBuilder, LevelFilter, TermLogger, TerminalMode};
|
||
|
|
||
|
fn main() {
|
||
|
TermLogger::init(
|
||
|
LevelFilter::Debug,
|
||
|
ConfigBuilder::new()
|
||
|
.set_target_level(LevelFilter::Error)
|
||
|
.set_location_level(LevelFilter::Error)
|
||
|
.build(),
|
||
|
TerminalMode::Mixed,
|
||
|
ColorChoice::Auto,
|
||
|
).unwrap();
|
||
|
info!("Loading XDP program");
|
||
|
let mut bpf = Bpf::load_file("multimap.o").unwrap();
|
||
|
let pass: &mut Xdp = bpf.program_mut("stats").unwrap().try_into().unwrap();
|
||
|
pass.load().unwrap();
|
||
|
pass.attach("eth0", XdpFlags::default()).unwrap();
|
||
|
info!("Success...");
|
||
|
}
|