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 {}