netstack3_core::ip

Struct IpDeviceConfiguration

Source
pub struct IpDeviceConfiguration {
    pub gmp_enabled: bool,
    pub unicast_forwarding_enabled: bool,
    pub multicast_forwarding_enabled: bool,
}
Expand description

Configurations common to all IP devices.

Fields§

§gmp_enabled: bool

Is a Group Messaging Protocol (GMP) enabled for this device?

If gmp_enabled is false, multicast groups will still be added to multicast_groups, but we will not inform the network of our membership in those groups using a GMP.

Default: false.

§unicast_forwarding_enabled: bool

A flag indicating whether forwarding of unicast IP packets not destined for this device is enabled.

This flag controls whether or not packets can be forwarded from this device. That is, when a packet arrives at a device it is not destined for, the packet can only be forwarded if the device it arrived at has forwarding enabled and there exists another device that has a path to the packet’s destination, regardless of the other device’s forwarding ability.

Default: false.

§multicast_forwarding_enabled: bool

A flag indicating whether forwarding of multicast IP packets received on this device is enabled.

This flag controls whether or not packets can be forwarded from this device. That is, when a multicast packet arrives at this device, the multicast routing table will be consulted and the packet will be forwarded out of the matching route’s corresponding outbound devices (regardless of the outbound device’s forwarding ability). Enabling multicast forwarding does not disrupt local delivery: the packet will both be forwarded and delivered locally.

Default: false.

Trait Implementations§

Source§

impl AsMut<IpDeviceConfiguration> for Ipv4DeviceConfigurationAndFlags

Source§

fn as_mut(&mut self) -> &mut IpDeviceConfiguration

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl AsMut<IpDeviceConfiguration> for Ipv6DeviceConfiguration

Source§

fn as_mut(&mut self) -> &mut IpDeviceConfiguration

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl AsMut<IpDeviceConfiguration> for Ipv6DeviceConfigurationAndFlags

Source§

fn as_mut(&mut self) -> &mut IpDeviceConfiguration

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl AsRef<IpDeviceConfiguration> for Ipv4DeviceConfigurationAndFlags

Source§

fn as_ref(&self) -> &IpDeviceConfiguration

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<IpDeviceConfiguration> for Ipv6DeviceConfiguration

Source§

fn as_ref(&self) -> &IpDeviceConfiguration

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<IpDeviceConfiguration> for Ipv6DeviceConfigurationAndFlags

Source§

fn as_ref(&self) -> &IpDeviceConfiguration

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for IpDeviceConfiguration

Source§

fn clone(&self) -> IpDeviceConfiguration

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IpDeviceConfiguration

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for IpDeviceConfiguration

Source§

fn default() -> IpDeviceConfiguration

Returns the “default value” for a type. Read more
Source§

impl PartialEq for IpDeviceConfiguration

Source§

fn eq(&self, other: &IpDeviceConfiguration) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for IpDeviceConfiguration

Source§

impl Eq for IpDeviceConfiguration

Source§

impl StructuralPartialEq for IpDeviceConfiguration

Auto Trait Implementations§

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<O, BC> BuildableCoreContext<BC> for O
where O: Default,

Source§

type Builder = ()

The builder type that can build this core context.
Source§

fn build(_bindings_ctx: &mut BC, _: ()) -> O

Consumes this builder and returns the context.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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>,