pub struct CandidatePairStats {
Show 27 fields pub timestamp: Instant, pub local_candidate_id: String, pub remote_candidate_id: String, pub state: CandidatePairState, pub nominated: bool, pub packets_sent: u32, pub packets_received: u32, pub bytes_sent: u64, pub bytes_received: u64, pub last_packet_sent_timestamp: Instant, pub last_packet_received_timestamp: Instant, pub first_request_timestamp: Instant, pub last_request_timestamp: Instant, pub last_response_timestamp: Instant, pub total_round_trip_time: f64, pub current_round_trip_time: f64, pub available_outgoing_bitrate: f64, pub available_incoming_bitrate: f64, pub circuit_breaker_trigger_count: u32, pub requests_received: u64, pub requests_sent: u64, pub responses_received: u64, pub responses_sent: u64, pub retransmissions_received: u64, pub retransmissions_sent: u64, pub consent_requests_sent: u64, pub consent_expired_timestamp: Instant,
}
Expand description

Contains ICE candidate pair statistics.

Fields§

§timestamp: Instant

The timestamp associated with this struct.

§local_candidate_id: String

The id of the local candidate.

§remote_candidate_id: String

The id of the remote candidate.

§state: CandidatePairState

The state of the checklist for the local and remote candidates in a pair.

§nominated: bool

It is true when this valid pair that should be used for media, if it is the highest-priority one amongst those whose nominated flag is set.

§packets_sent: u32

The total number of packets sent on this candidate pair.

§packets_received: u32

The total number of packets received on this candidate pair.

§bytes_sent: u64

The total number of payload bytes sent on this candidate pair not including headers or padding.

§bytes_received: u64

The total number of payload bytes received on this candidate pair not including headers or padding.

§last_packet_sent_timestamp: Instant

The timestamp at which the last packet was sent on this particular candidate pair, excluding STUN packets.

§last_packet_received_timestamp: Instant

The timestamp at which the last packet was received on this particular candidate pair, excluding STUN packets.

§first_request_timestamp: Instant

The timestamp at which the first STUN request was sent on this particular candidate pair.

§last_request_timestamp: Instant

The timestamp at which the last STUN request was sent on this particular candidate pair. The average interval between two consecutive connectivity checks sent can be calculated with (last_request_timestamp - first_request_timestamp) / requests_sent.

§last_response_timestamp: Instant

Timestamp at which the last STUN response was received on this particular candidate pair.

§total_round_trip_time: f64

The sum of all round trip time measurements in seconds since the beginning of the session, based on STUN connectivity check responses (responses_received), including those that reply to requests that are sent in order to verify consent. The average round trip time can be computed from total_round_trip_time by dividing it by responses_received.

§current_round_trip_time: f64

The latest round trip time measured in seconds, computed from both STUN connectivity checks, including those that are sent for consent verification.

§available_outgoing_bitrate: f64

It is calculated by the underlying congestion control by combining the available bitrate for all the outgoing RTP streams using this candidate pair. The bitrate measurement does not count the size of the IP or other transport layers like TCP or UDP. It is similar to the TIAS defined in RFC 3890, i.e., it is measured in bits per second and the bitrate is calculated over a 1 second window.

§available_incoming_bitrate: f64

It is calculated by the underlying congestion control by combining the available bitrate for all the incoming RTP streams using this candidate pair. The bitrate measurement does not count the size of the IP or other transport layers like TCP or UDP. It is similar to the TIAS defined in RFC 3890, i.e., it is measured in bits per second and the bitrate is calculated over a 1 second window.

§circuit_breaker_trigger_count: u32

The number of times the circuit breaker is triggered for this particular 5-tuple, ceasing transmission.

§requests_received: u64

The total number of connectivity check requests received (including retransmissions). It is impossible for the receiver to tell whether the request was sent in order to check connectivity or check consent, so all connectivity checks requests are counted here.

§requests_sent: u64

The total number of connectivity check requests sent (not including retransmissions).

§responses_received: u64

The total number of connectivity check responses received.

§responses_sent: u64

The total number of connectivity check responses sent. Since we cannot distinguish connectivity check requests and consent requests, all responses are counted.

§retransmissions_received: u64

The total number of connectivity check request retransmissions received.

§retransmissions_sent: u64

The total number of connectivity check request retransmissions sent.

§consent_requests_sent: u64

The total number of consent requests sent.

§consent_expired_timestamp: Instant

The timestamp at which the latest valid STUN binding response expired.

Trait Implementations§

source§

impl Default for CandidatePairStats

source§

fn default() -> Self

Returns the “default value” for a type. 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> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V