Struct netstack3_core::filter::PacketMatcher
source · pub struct PacketMatcher<I, DeviceClass>where
I: IpExt,{
pub in_interface: Option<InterfaceMatcher<DeviceClass>>,
pub out_interface: Option<InterfaceMatcher<DeviceClass>>,
pub src_address: Option<AddressMatcher<<I as Ip>::Addr>>,
pub dst_address: Option<AddressMatcher<<I as Ip>::Addr>>,
pub transport_protocol: Option<TransportProtocolMatcher<<I as IpProtoExt>::Proto>>,
}
Expand description
Top-level matcher for IP packets.
Fields§
§in_interface: Option<InterfaceMatcher<DeviceClass>>
The interface on which the packet entered the stack.
Only available in INGRESS
, LOCAL_INGRESS
, and FORWARDING
.
out_interface: Option<InterfaceMatcher<DeviceClass>>
The interface through which the packet exits the stack.
Only available in FORWARDING
, LOCAL_EGRESS
, and EGRESS
.
src_address: Option<AddressMatcher<<I as Ip>::Addr>>
Matcher for the source IP address.
dst_address: Option<AddressMatcher<<I as Ip>::Addr>>
Matcher for the destination IP address.
transport_protocol: Option<TransportProtocolMatcher<<I as IpProtoExt>::Proto>>
Matchers for the transport layer.
Trait Implementations§
source§impl<I, DeviceClass> Clone for PacketMatcher<I, DeviceClass>
impl<I, DeviceClass> Clone for PacketMatcher<I, DeviceClass>
source§fn clone(&self) -> PacketMatcher<I, DeviceClass>
fn clone(&self) -> PacketMatcher<I, DeviceClass>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<I, DeviceClass> Debug for PacketMatcher<I, DeviceClass>
impl<I, DeviceClass> Debug for PacketMatcher<I, DeviceClass>
source§impl<I, DeviceClass> Default for PacketMatcher<I, DeviceClass>where
I: IpExt,
impl<I, DeviceClass> Default for PacketMatcher<I, DeviceClass>where
I: IpExt,
source§fn default() -> PacketMatcher<I, DeviceClass>
fn default() -> PacketMatcher<I, DeviceClass>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<I, DeviceClass> Freeze for PacketMatcher<I, DeviceClass>
impl<I, DeviceClass> RefUnwindSafe for PacketMatcher<I, DeviceClass>where
I: IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + EthernetIpExt + 'static,
DeviceClass: RefUnwindSafe,
<I as IpProtoExt>::Proto: RefUnwindSafe,
<I as Ip>::Addr: RefUnwindSafe,
impl<I, DeviceClass> Send for PacketMatcher<I, DeviceClass>
impl<I, DeviceClass> Sync for PacketMatcher<I, DeviceClass>
impl<I, DeviceClass> Unpin for PacketMatcher<I, DeviceClass>
impl<I, DeviceClass> UnwindSafe for PacketMatcher<I, DeviceClass>where
I: IcmpIpExt + IpProtoExt + Ip + Sealed + Sync + Send + PartialOrd + PartialEq + Ord + Hash + Eq + Default + Debug + Copy + Clone + EthernetIpExt + 'static,
DeviceClass: UnwindSafe,
<I as IpProtoExt>::Proto: UnwindSafe,
<I as Ip>::Addr: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
Id: HandleableTimer<CC, BC>,
source§fn handle_timer(&mut self, bindings_ctx: &mut BC, id: Id)
fn handle_timer(&mut self, bindings_ctx: &mut BC, id: Id)
Handle a timer firing.