#[non_exhaustive]pub enum PathEvent {
New(SocketAddr, SocketAddr),
Validated(SocketAddr, SocketAddr),
FailedValidation(SocketAddr, SocketAddr),
Closed(SocketAddr, SocketAddr),
ReusedSourceConnectionId(u64, (SocketAddr, SocketAddr), (SocketAddr, SocketAddr)),
PeerMigrated(SocketAddr, SocketAddr),
PmtuUpdated {
local: SocketAddr,
peer: SocketAddr,
pmtu: usize,
},
}Expand description
A path-specific event.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
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 SocketAddrs,
is now reused over the second pair of SocketAddrs.
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.
PmtuUpdated
The validated PMTU available for normal application traffic changed on
the network path between local and peer.
This event is generated only while PMTUD is enabled. It reports the largest successfully probed size, falling back to QUIC’s minimum packet size while no larger size is validated. Unvalidated probe sizes and the initial minimum set when the path is created are not reported.
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 UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.§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
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> 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