pub enum PathEvent {
New(SocketAddr, SocketAddr),
Validated(SocketAddr, SocketAddr),
FailedValidation(SocketAddr, SocketAddr),
Closed(SocketAddr, SocketAddr),
ReusedSourceConnectionId(u64, (SocketAddr, SocketAddr), (SocketAddr, SocketAddr)),
PeerMigrated(SocketAddr, SocketAddr),
}
Expand description
A path-specific event.
Variants§
New(SocketAddr, SocketAddr)
A new network path (local address, peer address) has been seen on a received packet. Note that this event is only triggered for servers, as the client is responsible from initiating new paths. The application may then probe this new path, if desired.
Validated(SocketAddr, SocketAddr)
The related network path between local SocketAddr
and peer
SocketAddr
has been validated.
FailedValidation(SocketAddr, SocketAddr)
The related network path between local SocketAddr
and peer
SocketAddr
failed to be validated. This network path will not be used
anymore, unless the application requests probing this path again.
Closed(SocketAddr, SocketAddr)
The related network path between local SocketAddr
and peer
SocketAddr
has been closed and is now unusable on this connection.
ReusedSourceConnectionId(u64, (SocketAddr, SocketAddr), (SocketAddr, SocketAddr))
The stack observes that the Source Connection ID with the given sequence
number, initially used by the peer over the first pair of SocketAddr
s,
is now reused over the second pair of SocketAddr
s.
PeerMigrated(SocketAddr, SocketAddr)
The connection observed that the peer migrated over the network path
denoted by the pair of SocketAddr
, i.e., non-probing packets have been
received on this network path. This is a server side only event.
Note that this event is only raised if the path has been validated.
Trait Implementations§
impl Eq for PathEvent
impl StructuralPartialEq for PathEvent
Auto Trait Implementations§
impl Freeze for PathEvent
impl RefUnwindSafe for PathEvent
impl Send for PathEvent
impl Sync for PathEvent
impl Unpin for PathEvent
impl UnwindSafe for PathEvent
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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