Skip to main content

RouterAdvertisementHeader

Struct RouterAdvertisementHeader 

Source
pub struct RouterAdvertisementHeader {
    pub cur_hop_limit: u8,
    pub managed_address_config: bool,
    pub other_config: bool,
    pub router_lifetime: u16,
}
Expand description

ICMPv6 router advertisement header (part of “Neighbor Discovery Protocol” RFC 4861).

Fields§

§cur_hop_limit: u8

The default value that should be placed in the Hop Count field of the IP header for outgoing IP packets.

A value of zero means unspecified (by this router).

§managed_address_config: bool

“Managed address configuration” flag.

When set, it indicates that addresses are available via Dynamic Host Configuration Protocol [DHCPv6].

If the M flag is set, the O flag is redundant and can be ignored because DHCPv6 will return all available configuration information.

§other_config: bool

“Other configuration” flag.

When set, it indicates that other configuration information is available via DHCPv6. Examples of such information are DNS-related information or information on other servers within the network.

§router_lifetime: u16

The lifetime associated with the default router in units of seconds.

The field can contain values up to 65535 and receivers should handle any value, while the sending rules in Section 6 of RFC 4861 limit the lifetime to 9000 seconds. A Lifetime of 0 indicates that the router is not a default router and SHOULD NOT appear on the default router list. The Router Lifetime applies only to the router’s usefulness as a default router; it does not apply to information contained in other message fields or options. Options that need time limits for their information include their own lifetime fields.

Implementations§

Source§

impl RouterAdvertisementHeader

Source

pub const MANAGED_ADDRESS_CONFIG_MASK: u8 = 0b1000_0000

Mask to read out the “Managed Address Configuration” flag out of the 5th byte of the ICMPv6 header.

Source

pub const OTHER_CONFIG_MASK: u8 = 0b0100_0000

Mask to read out the “Other Configuration” flag out of the 5th byte of the ICMPv6 header.

Source

pub fn from_bytes(bytes: [u8; 4]) -> Self

Decodes the header from the on the wire bytes.

Source

pub fn to_bytes(&self) -> [u8; 4]

Converts the header to the on the wire bytes.

Trait Implementations§

Source§

impl Clone for RouterAdvertisementHeader

Source§

fn clone(&self) -> RouterAdvertisementHeader

Returns a duplicate 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 RouterAdvertisementHeader

Source§

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

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

impl Hash for RouterAdvertisementHeader

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for RouterAdvertisementHeader

Source§

fn cmp(&self, other: &RouterAdvertisementHeader) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for RouterAdvertisementHeader

Source§

fn eq(&self, other: &RouterAdvertisementHeader) -> 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 PartialOrd for RouterAdvertisementHeader

Source§

fn partial_cmp(&self, other: &RouterAdvertisementHeader) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for RouterAdvertisementHeader

Source§

impl Eq for RouterAdvertisementHeader

Source§

impl StructuralPartialEq for RouterAdvertisementHeader

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 = 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.