cross_socket/packet/
mod.rs

1pub mod arp;
2pub mod builder;
3pub mod dhcp;
4pub mod ethernet;
5pub mod gre;
6pub mod icmp;
7pub mod icmpv6;
8pub mod ip;
9pub mod ipv4;
10pub mod ipv6;
11pub mod tcp;
12pub mod udp;
13
14/// Packet Capture information
15#[derive(Clone, Debug, PartialEq)]
16pub struct CaptureInfo {
17    /// Capture number
18    pub capture_no: usize,
19    /// Capture datetime
20    pub datatime: String,
21    /// Capture length
22    pub capture_len: usize,
23    /// interface index
24    pub interface_index: u32,
25    /// Interface name
26    pub interface_name: String,
27}
28
29/// Packet Frame. Contains all the possible packet types
30#[derive(Clone, Debug)]
31pub struct PacketFrame {
32    pub capture_info: CaptureInfo,
33    pub ethernet_packet: Option<ethernet::EthernetPacket>,
34    pub arp_packet: Option<arp::ArpPacket>,
35    pub ipv4_packet: Option<ipv4::Ipv4Packet>,
36    pub ipv6_packet: Option<ipv6::Ipv6Packet>,
37    pub icmp_packet: Option<icmp::IcmpPacket>,
38    pub icmpv6_packet: Option<icmpv6::Icmpv6Packet>,
39    pub tcp_packet: Option<tcp::TcpPacket>,
40    pub udp_packet: Option<udp::UdpPacket>,
41}