pub struct LinkHeader {
    pub interface_family: AddressFamily,
    pub index: u32,
    pub link_layer_type: LinkLayerType,
    pub flags: Vec<LinkFlag>,
    pub change_mask: Vec<LinkFlag>,
}
Expand description

High level representation of RTM_GETLINK, RTM_SETLINK, RTM_NEWLINK and RTM_DELLINK messages headers.

These headers have the following structure:

0                8                16              24               32
+----------------+----------------+----------------+----------------+
|interface family|    reserved    |         link layer type         |
+----------------+----------------+----------------+----------------+
|                             link index                            |
+----------------+----------------+----------------+----------------+
|                               flags                               |
+----------------+----------------+----------------+----------------+
|                            change mask                            |
+----------------+----------------+----------------+----------------+

LinkHeader exposes all these fields except for the “reserved” one.

Fields§

§interface_family: AddressFamily

Address family: one of the AF_* constants. The AddressFamily has From<u8> and From<AddressFamily> for u8 implemented.

§index: u32

Link index.

§link_layer_type: LinkLayerType

Link type. It should be set to one of the ARPHRD_* constants. The most common value is LinkLayerType::Ether for Ethernet. The LinkLayerType has From<u16> and From<LinkLayerType> for u16 implemented.

§flags: Vec<LinkFlag>

State of the link, described by a combinations of IFF_* constants, for instance vec![LinkFlag::Up, LinkFlag::LowerUp]. To convert Vec<LinkFlag> into u32, you may: u32::from(&VecLinkFlag(Vec<LinkFlag>) To convert u32 to Vec<LinkFlag>, you may: VecLinkFlag::from(u32).0

§change_mask: Vec<LinkFlag>

Change mask for the flags field.

Trait Implementations§

source§

impl Clone for LinkHeader

source§

fn clone(&self) -> LinkHeader

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 LinkHeader

source§

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

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

impl Default for LinkHeader

source§

fn default() -> LinkHeader

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

impl Emitable for LinkHeader

source§

fn buffer_len(&self) -> usize

Return the length of the serialized data.
source§

fn emit(&self, buffer: &mut [u8])

Serialize this types and write the serialized data into the given buffer. Read more
source§

impl<T: AsRef<[u8]>> Parseable<LinkMessageBuffer<T>> for LinkHeader

source§

fn parse(buf: &LinkMessageBuffer<T>) -> Result<Self, DecodeError>

Deserialize the current type.
source§

impl PartialEq for LinkHeader

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for LinkHeader

source§

impl StructuralEq for LinkHeader

source§

impl StructuralPartialEq for LinkHeader

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> 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,

§

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>,

§

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>,

§

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.