stackforge_core/pcap/
mod.rs1pub mod reader;
8pub mod writer;
9
10use std::time::Duration;
11
12use crate::Packet;
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq)]
16pub enum CaptureFormat {
17 Pcap,
19 PcapNg,
21}
22
23#[derive(Debug, Clone)]
25pub struct PcapMetadata {
26 pub timestamp: Duration,
28 pub orig_len: u32,
30 pub interface_id: Option<u32>,
32 pub comment: Option<String>,
34}
35
36impl Default for PcapMetadata {
37 fn default() -> Self {
38 Self {
39 timestamp: Duration::ZERO,
40 orig_len: 0,
41 interface_id: None,
42 comment: None,
43 }
44 }
45}
46
47#[derive(Debug, Clone)]
49pub struct CapturedPacket {
50 pub packet: Packet,
52 pub metadata: PcapMetadata,
54}
55
56#[derive(Debug, Clone, Copy, PartialEq, Eq)]
58pub struct LinkType(pub u32);
59
60impl LinkType {
61 pub const ETHERNET: Self = Self(1);
62 pub const RAW: Self = Self(101);
63 pub const LINUX_SLL: Self = Self(113);
64}
65
66pub use reader::{CaptureIterator, PcapIterator, PcapNgIterator, rdpcap};
67pub use writer::{PcapNgStreamWriter, wrpcap, wrpcap_packets, wrpcapng, wrpcapng_packets};