net_parser_rs/flow/layer4/
mod.rs1pub mod tcp;
2pub mod udp;
3pub mod vxlan;
4
5use crate::flow::Flow;
6use crate::flow::errors::Error;
7use crate::flow::info::layer2::{Info as L2Info};
8use crate::flow::info::layer3::{Info as L3Info};
9
10pub trait FlowExtraction {
11 fn extract_flow(&self, l2: L2Info, l3: L3Info) -> Result<Flow, Error>;
12}
13
14pub mod errors {
18 use crate::flow::layer4::tcp;
19 use crate::flow::layer4::udp;
20 use crate::flow::layer4::vxlan;
21 use thiserror::{Error as ThisError};
22
23 #[derive(Debug, ThisError)]
24 pub enum Error {
25 #[error("Tcp Error: {0:?}")]
26 Tcp(#[from] tcp::errors::Error),
27 #[error("Udp Error: {0:?}")]
28 Udp(#[from] udp::errors::Error),
29 #[error("Vxlan Error: {0:?}")]
30 Vxlan(#[from] vxlan::errors::Error),
31 }
32
33 unsafe impl Sync for Error {}
34 unsafe impl Send for Error {}
35}