pub enum MultipathStrategy {
Classic,
Paris,
Dublin,
}Expand description
The Equal-cost Multi-Path routing strategy.
Variants§
Classic
The src or dest port is used to store the sequence number.
This does not allow fixing both the src and dest port and so PortDirection::Both and
SequenceField::Port are mutually exclusive.
Paris
The UDP checksum field is used to store the sequence number.
a.k.a. paris traceroute approach.
This requires that the UDP payload contains a well-chosen value to ensure the UDP checksum remains valid for the packet and therefore this cannot be used along with a custom payload pattern.
Dublin
The IP identifier field is used to store the sequence number.
a.k.a. dublin traceroute approach.
The allow either the src or dest or both ports to be fixed.
If either of the src or dest port may vary (i.e. PortDirection::FixedSrc or
PortDirection::FixedDest) then the port number is set to be the initial_sequence
plus the round number to ensure that there is a fixed flowid (protocol, src ip/port,
dest ip/port) for all packets in a given tracing round. Each round may
therefore discover different paths.
If both src and dest ports are fixed (i.e. PortDirection::FixedBoth) then every packet in
every round will share the same flowid and thus only a single path will be
discovered.
Trait Implementations§
Source§impl Clone for MultipathStrategy
impl Clone for MultipathStrategy
Source§fn clone(&self) -> MultipathStrategy
fn clone(&self) -> MultipathStrategy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MultipathStrategy
impl Debug for MultipathStrategy
Source§impl Display for MultipathStrategy
impl Display for MultipathStrategy
Source§impl PartialEq for MultipathStrategy
impl PartialEq for MultipathStrategy
impl Copy for MultipathStrategy
impl Eq for MultipathStrategy
impl StructuralPartialEq for MultipathStrategy
Auto Trait Implementations§
impl Freeze for MultipathStrategy
impl RefUnwindSafe for MultipathStrategy
impl Send for MultipathStrategy
impl Sync for MultipathStrategy
impl Unpin for MultipathStrategy
impl UnwindSafe for MultipathStrategy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more