agent_api/
structs.rs

1use bytemuck::Zeroable;
2use crate::constants::TASK_COMM_LEN;
3
4
5#[repr(C)]
6#[derive(Clone, Copy, Zeroable)]
7pub struct PacketLog {
8    pub proto: u8,
9    pub src_ip: u32,
10    pub src_port: u16,
11    pub dst_ip: u32,
12    pub dst_port: u16,
13    pub pid: u32,
14}
15unsafe impl aya::Pod for PacketLog {}
16
17#[repr(C, packed)]
18#[derive(Clone, Copy, Zeroable)]
19pub struct NetworkMetrics {
20    pub tgid: u32,
21    pub comm: [u8; TASK_COMM_LEN],
22    pub ts_us: u64,
23    pub sk_err: i32,
24    pub sk_err_soft: i32,
25    pub sk_backlog_len: i32,
26    pub sk_write_memory_queued: i32,
27    pub sk_receive_buffer_size: i32,
28    pub sk_ack_backlog: u32,
29    pub sk_drops: i32,
30}
31unsafe impl aya::Pod for NetworkMetrics {}
32
33#[repr(C)]
34#[derive(Clone, Copy, Zeroable)]
35pub struct TimeStampMetrics {
36    pub delta_us: u64,
37    pub ts_us: u64,
38    pub tgid: u32,
39    pub comm: [u8; TASK_COMM_LEN],
40    pub lport: u16,
41    pub dport_be: u16,
42    pub af: u16,
43    pub saddr_v4: u32,
44    pub daddr_v4: u32,
45    pub saddr_v6: [u32; 4],
46    pub daddr_v6: [u32; 4],
47}
48unsafe impl aya::Pod for TimeStampMetrics {}