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.
45 lines
976 B
Rust
45 lines
976 B
Rust
1 year ago
|
#![no_std]
|
||
|
#![no_main]
|
||
|
|
||
|
use aya_bpf::{
|
||
|
bindings::xdp_action,
|
||
|
macros::{map, xdp},
|
||
|
maps::{CpuMap, DevMap, DevMapHash, XskMap},
|
||
|
programs::XdpContext,
|
||
|
};
|
||
|
|
||
|
#[map]
|
||
|
static SOCKS: XskMap = XskMap::with_max_entries(1, 0);
|
||
|
#[map]
|
||
|
static DEVS: DevMap = DevMap::with_max_entries(1, 0);
|
||
|
#[map]
|
||
|
static DEVS_HASH: DevMapHash = DevMapHash::with_max_entries(1, 0);
|
||
|
#[map]
|
||
|
static CPUS: CpuMap = CpuMap::with_max_entries(1, 0);
|
||
|
|
||
|
#[xdp]
|
||
|
pub fn redirect_sock(_ctx: XdpContext) -> u32 {
|
||
|
SOCKS.redirect(0, xdp_action::XDP_ABORTED as u64)
|
||
|
}
|
||
|
|
||
|
#[xdp]
|
||
|
pub fn redirect_dev(_ctx: XdpContext) -> u32 {
|
||
|
DEVS.redirect(0, xdp_action::XDP_ABORTED as u64)
|
||
|
}
|
||
|
|
||
|
#[xdp]
|
||
|
pub fn redirect_dev_hash(_ctx: XdpContext) -> u32 {
|
||
|
DEVS_HASH.redirect(10, xdp_action::XDP_ABORTED as u64)
|
||
|
}
|
||
|
|
||
|
#[xdp]
|
||
|
pub fn redirect_cpu(_ctx: XdpContext) -> u32 {
|
||
|
CPUS.redirect(0, xdp_action::XDP_ABORTED as u64)
|
||
|
}
|
||
|
|
||
|
#[cfg(not(test))]
|
||
|
#[panic_handler]
|
||
|
fn panic(_info: &core::panic::PanicInfo) -> ! {
|
||
|
loop {}
|
||
|
}
|