4
0

xdp_sec.rs 648 B

1234567891011121314151617181920212223242526
  1. #![no_std]
  2. #![no_main]
  3. use aya_ebpf::{bindings::xdp_action::XDP_PASS, macros::xdp, programs::XdpContext};
  4. macro_rules! probe {
  5. ($name:ident, ($($arg:ident $(= $value:literal)?),*) ) => {
  6. #[xdp($($arg $(= $value)?),*)]
  7. pub fn $name(_ctx: XdpContext) -> u32 {
  8. XDP_PASS
  9. }
  10. };
  11. }
  12. probe!(xdp_plain, ());
  13. probe!(xdp_frags, (frags));
  14. probe!(xdp_cpumap, (map = "cpumap"));
  15. probe!(xdp_devmap, (map = "devmap"));
  16. probe!(xdp_frags_cpumap, (frags, map = "cpumap"));
  17. probe!(xdp_frags_devmap, (frags, map = "devmap"));
  18. #[cfg(not(test))]
  19. #[panic_handler]
  20. fn panic(_info: &core::panic::PanicInfo) -> ! {
  21. loop {}
  22. }