multimap.rs 867 B

123456789101112131415161718192021222324252627282930313233
  1. //! ```cargo
  2. //! [dependencies]
  3. //! log = "0.4"
  4. //! simplelog = "0.11"
  5. //! aya = { path = "../../../../aya" }
  6. //! ```
  7. use aya::{
  8. Bpf,
  9. programs::{Xdp, XdpFlags},
  10. };
  11. use log::info;
  12. use std::convert::TryInto;
  13. use simplelog::{ColorChoice, ConfigBuilder, LevelFilter, TermLogger, TerminalMode};
  14. fn main() {
  15. TermLogger::init(
  16. LevelFilter::Debug,
  17. ConfigBuilder::new()
  18. .set_target_level(LevelFilter::Error)
  19. .set_location_level(LevelFilter::Error)
  20. .build(),
  21. TerminalMode::Mixed,
  22. ColorChoice::Auto,
  23. ).unwrap();
  24. info!("Loading XDP program");
  25. let mut bpf = Bpf::load_file("multimap.o").unwrap();
  26. let pass: &mut Xdp = bpf.program_mut("stats").unwrap().try_into().unwrap();
  27. pass.load().unwrap();
  28. pass.attach("eth0", XdpFlags::default()).unwrap();
  29. info!("Success...");
  30. }