Struct OspfHellov3Packet

Source
pub struct OspfHellov3Packet {
    pub header: Ospfv3PacketHeader,
    pub interface_id: u32,
    pub router_priority: u8,
    pub options: u32,
    pub hello_interval: u16,
    pub router_dead_interval: u16,
    pub designated_router: u32,
    pub backup_designated_router: u32,
    pub neighbor_list: Vec<u32>,
}
Expand description

The Hello packet (v3)

Hello packets are OSPF packet type 1. These packets are sent periodically on all interfaces (including virtual links) in order to establish and maintain neighbor relationships. In addition, Hello packets are multicast on those links having a multicast or broadcast capability, enabling dynamic discovery of neighboring routers.

All routers connected to a common link must agree on certain parameters (HelloInterval and RouterDeadInterval). These parameters are included in Hello packets allowing differences to inhibit the forming of neighbor relationships. The Hello packet also contains fields used in Designated Router election (Designated Router ID and Backup Designated Router ID), and fields used to detect bidirectional communication (the Router IDs of all neighbors whose Hellos have been recently received).

Fields§

§header: Ospfv3PacketHeader§interface_id: u32§router_priority: u8§options: u32§hello_interval: u16§router_dead_interval: u16§designated_router: u32§backup_designated_router: u32§neighbor_list: Vec<u32>

Implementations§

Trait Implementations§

Source§

impl Debug for OspfHellov3Packet

Source§

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

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

impl<'nom> Parse<&'nom [u8]> for OspfHellov3Packet

Source§

fn parse_be(orig_i: &'nom [u8]) -> IResult<&'nom [u8], Self>

Parse input as Big-Endian
Source§

fn parse_le(orig_i: &'nom [u8]) -> IResult<&'nom [u8], Self>

Parse input as Little-Endian
Source§

fn parse(orig_i: &'nom [u8]) -> IResult<&'nom [u8], Self>

Parse input, not knowing the endianness Read more

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