pub struct ShedCounts {
pub requests: u64,
pub acks: u64,
pub unmatched: u64,
}Expand description
A snapshot of what an endpoint has shed (see crate::Handle::shed).
Fields§
§requests: u64Requests that reached a server transaction and could not be handed to the application.
Answered 503 Service Unavailable with a Retry-After, so the peer is told something
true rather than left to retransmit into a queue that is still full.
acks: u64ACKs that could not be handed over.
The serious one, and the reason these are not one number. An ACK for a 2xx has no transaction to answer — RFC 3261 §17.1.1.3 makes it a new transaction of its own, and there is no response to an ACK in SIP at all — so there is no 503 to send and nothing retransmits it after Timer H. Both ends are then in a dialog that no timer will reap unless session timers (RFC 4028) happen to be in play. A non-zero count here means calls are leaking.
unmatched: u64Requests that matched no transaction and could not be handed over.
The peer will retransmit an unmatched INVITE, so this is the most survivable of the three — but it is still loss, and it was previously invisible.
Implementations§
Trait Implementations§
Source§impl Clone for ShedCounts
impl Clone for ShedCounts
Source§fn clone(&self) -> ShedCounts
fn clone(&self) -> ShedCounts
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ShedCounts
impl Debug for ShedCounts
Source§impl Default for ShedCounts
impl Default for ShedCounts
Source§fn default() -> ShedCounts
fn default() -> ShedCounts
Source§impl PartialEq for ShedCounts
impl PartialEq for ShedCounts
Source§fn eq(&self, other: &ShedCounts) -> bool
fn eq(&self, other: &ShedCounts) -> bool
self and other values to be equal, and is used by ==.impl Copy for ShedCounts
impl Eq for ShedCounts
impl StructuralPartialEq for ShedCounts
Auto Trait Implementations§
impl Freeze for ShedCounts
impl RefUnwindSafe for ShedCounts
impl Send for ShedCounts
impl Sync for ShedCounts
impl Unpin for ShedCounts
impl UnsafeUnpin for ShedCounts
impl UnwindSafe for ShedCounts
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,
§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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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