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: AddressFamilyAddress family: one of the AF_* constants.
The AddressFamily has From<u8> and From<AddressFamily> for u8
implemented.
index: u32Link index.
link_layer_type: LinkLayerTypeLink 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 ==.