Struct netstack3_core::filter::FilterApi
pub struct FilterApi<C>(/* private fields */);
Expand description
The filtering API.
Implementations§
§impl<C> FilterApi<C>where
C: ContextPair,
<C as ContextPair>::CoreContext: FilterContext<<C as ContextPair>::BindingsContext> + FilterIpContext<Ipv4, <C as ContextPair>::BindingsContext> + FilterIpContext<Ipv6, <C as ContextPair>::BindingsContext>,
<C as ContextPair>::BindingsContext: FilterBindingsTypes,
impl<C> FilterApi<C>where
C: ContextPair,
<C as ContextPair>::CoreContext: FilterContext<<C as ContextPair>::BindingsContext> + FilterIpContext<Ipv4, <C as ContextPair>::BindingsContext> + FilterIpContext<Ipv6, <C as ContextPair>::BindingsContext>,
<C as ContextPair>::BindingsContext: FilterBindingsTypes,
pub fn set_filter_state<RuleInfo>(
&mut self,
v4: Routines<Ipv4, <<C as ContextPair>::BindingsContext as FilterBindingsTypes>::DeviceClass, RuleInfo>,
v6: Routines<Ipv6, <<C as ContextPair>::BindingsContext as FilterBindingsTypes>::DeviceClass, RuleInfo>,
) -> Result<(), ValidationError<RuleInfo>>where
RuleInfo: Clone,
pub fn set_filter_state<RuleInfo>(
&mut self,
v4: Routines<Ipv4, <<C as ContextPair>::BindingsContext as FilterBindingsTypes>::DeviceClass, RuleInfo>,
v6: Routines<Ipv6, <<C as ContextPair>::BindingsContext as FilterBindingsTypes>::DeviceClass, RuleInfo>,
) -> Result<(), ValidationError<RuleInfo>>where
RuleInfo: Clone,
Sets the filtering state for the provided IP version.
The provided state must not contain any cyclical routine graphs (formed by rules with jump actions). The behavior in this case is unspecified but could be a deadlock or a panic, for example.
§Panics
Panics if the provided state includes cyclic routine graphs.
pub fn inspect_state<N>(&mut self, inspector: &mut N)where
N: Inspector,
pub fn inspect_state<N>(&mut self, inspector: &mut N)where
N: Inspector,
Exports filtering state into inspector
.
Auto Trait Implementations§
impl<C> Freeze for FilterApi<C>where
C: Freeze,
impl<C> RefUnwindSafe for FilterApi<C>where
C: RefUnwindSafe,
impl<C> Send for FilterApi<C>where
C: Send,
impl<C> Sync for FilterApi<C>where
C: Sync,
impl<C> Unpin for FilterApi<C>where
C: Unpin,
impl<C> UnwindSafe for FilterApi<C>where
C: 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
source§impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
source§impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
source§fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
Send a frame. Read more
source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
source§fn handle_timer(
&mut self,
bindings_ctx: &mut BC,
dispatch: Id,
timer: <BC as TimerBindingsTypes>::UniqueTimerId,
)
fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )
Handle a timer firing. Read more
source§impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
§type Data = <L as UnlockedAccessMarkerFor<T>>::Data
type Data = <L as UnlockedAccessMarkerFor<T>>::Data
The type of state being accessed.
§type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data
where
T: 'l
type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l
A guard providing read access to the data.
source§fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
How to access the state.