Struct netlink_packet_route::link::LinkHeader
source · 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
impl Clone for LinkHeader
source§fn clone(&self) -> LinkHeader
fn clone(&self) -> LinkHeader
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for LinkHeader
impl Debug for LinkHeader
source§impl Default for LinkHeader
impl Default for LinkHeader
source§fn default() -> LinkHeader
fn default() -> LinkHeader
source§impl Emitable for LinkHeader
impl Emitable for LinkHeader
source§impl<T: AsRef<[u8]>> Parseable<LinkMessageBuffer<T>> for LinkHeader
impl<T: AsRef<[u8]>> Parseable<LinkMessageBuffer<T>> for LinkHeader
source§fn parse(buf: &LinkMessageBuffer<T>) -> Result<Self, DecodeError>
fn parse(buf: &LinkMessageBuffer<T>) -> Result<Self, DecodeError>
source§impl PartialEq for LinkHeader
impl PartialEq for LinkHeader
source§fn eq(&self, other: &LinkHeader) -> bool
fn eq(&self, other: &LinkHeader) -> bool
self
and other
values to be equal, and is used
by ==
.