Skip to main content

V2ipVlan

Struct V2ipVlan 

Source
pub struct V2ipVlan {
    pub flags: V2ipVlanFlag,
    pub device: u16,
    pub port: [u16; 3],
    pub uplink: u8,
    pub active_uplink: u8,
    pub revert_s: u8,
}
Expand description

VLAN tagging on a V2IP device’s uplink.

Only the device knows what it runs, so this is what it reported about itself. A change written to it is applied at once and stays PENDING until the mesh controller confirms it, which proves the device still reaches the mesh and the mesh still reaches it; unconfirmed, the device reverts it.

Fields§

§flags: V2ipVlanFlag

The block’s flags.

§device: u16

The VLAN id of the device’s own traffic, 0 for untagged.

§port: [u16; 3]

The VLAN id each downlink port carries, 0 to share the device’s untagged traffic, indexed as V2IP_VLAN_PORTS orders them.

§uplink: u8

The port pinned as the uplink as 1 + its index, 0 to detect it.

§active_uplink: u8

Reported by the device: the port in use as the uplink, as 1 + its index.

§revert_s: u8

Reported by the device: the seconds before a pending configuration is reverted.

Implementations§

Source§

impl V2ipVlan

Source

pub const fn trunk(&self) -> bool

Whether untagged frames arriving on the uplink are dropped.

Source

pub const fn is_pending(&self) -> bool

Whether the device reverts this configuration unless the mesh controller confirms it.

Source

pub const fn has_sfp(&self) -> bool

Whether the device has an SFP port.

The index of the port pinned as the uplink, None when the device detects it.

The index of the port the device uses as its uplink, None for a value that names no port.

Source

pub fn is_valid(&self) -> bool

Whether every VLAN id is at most V2IP_VLAN_ID_MAX and the uplink is detected or names a port.

Trait Implementations§

Source§

impl Clone for V2ipVlan

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for V2ipVlan

Source§

impl Debug for V2ipVlan

Source§

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

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

impl Default for V2ipVlan

Source§

fn default() -> Self

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

impl Eq for V2ipVlan

Source§

impl PartialEq for V2ipVlan

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for V2ipVlan

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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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<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 = !

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

fn try_from(value: U) -> Result<T, !>

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.