push_packet_common/
lib.rs1#![no_std]
2pub mod engine;
3
4pub const RING_BUF_NAME: &str = "PP_RING_BUF";
5pub const DEFAULT_RING_BUF_SIZE: u32 = 262144;
6
7#[non_exhaustive]
9#[repr(u8)]
10#[derive(Clone, Copy, Default, PartialEq, Eq, Hash)]
11pub enum Protocol {
12 Icmp = 1,
13 #[default]
14 Tcp = 6,
15 Udp = 17,
16 Icmpv6 = 58,
17}
18
19#[non_exhaustive]
21#[repr(u8)]
22#[derive(Clone, Copy, Default)]
23pub enum Action {
24 #[default]
25 Pass = 0,
26 Drop = 1,
27 Copy = 2,
28 Route = 3,
29}
30
31#[repr(u32)]
32#[derive(Clone, Copy, Debug)]
33pub enum FrameKind {
34 Eth = 0,
35 Ip = 1,
36}
37
38#[cfg(feature = "user")]
39unsafe impl aya::Pod for FrameKind {}
40
41#[repr(C)]
42#[derive(Clone, Copy)]
43pub struct CopyArgs {
44 pub take: u32,
45 pub rule_id: u32,
46 pub packet_len: u32,
47}
48
49#[repr(C)]
50#[derive(Clone, Copy)]
51pub struct RouteArgs {
52 pub rule_id: u32,
53}