netstack3_core::filter

Struct FilterApi

pub struct FilterApi<C>(/* private fields */);
Expand description

The filtering API.

Implementations§

§

impl<C> FilterApi<C>

pub fn new(ctx: C) -> FilterApi<C>

Creates a new FilterApi from a context pair.

§

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,

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,

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CC
where Meta: ReceivableFrameMeta<CC, BC>,

Source§

fn receive_frame<B>(&mut self, bindings_ctx: &mut BC, metadata: Meta, frame: B)
where B: BufferMut + Debug,

Receive a frame. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CC
where 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,

Send a frame. Read more
Source§

impl<Id, CC, BC> TimerHandler<BC, Id> for CC
where BC: TimerBindingsTypes, Id: HandleableTimer<CC, BC>,

Source§

fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )

Handle a timer firing. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<L, T> UnlockedAccess<L> for T

Source§

type Data = <L as UnlockedAccessMarkerFor<T>>::Data

The type of state being accessed.
Source§

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<'_>

How to access the state.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<B, A> LockBefore<B> for A
where B: LockAfter<A>,