pub struct Controller { /* private fields */ }

Implementations§

source§

impl Controller

source

pub fn new(max_mtu: MaxMtu, peer_socket_address: &SocketAddress) -> Self

Construct a new mtu::Controller with the given max_mtu and peer_socket_address

The UDP header length and IP header length will be subtracted from max_mtu to determine the max_udp_payload used for limiting the payload length of probe packets. max_mtu is the maximum allowed mtu, e.g. for jumbo frames this value is expected to be over 9000.

source

pub fn enable(&mut self)

Enable path MTU probing

source

pub fn on_timeout(&mut self, now: Timestamp)

Called when the connection timer expires

source

pub fn on_packet_ack<CC: CongestionController, Pub: ConnectionPublisher>( &mut self, packet_number: PacketNumber, sent_bytes: u16, congestion_controller: &mut CC, path_id: Id, publisher: &mut Pub )

This method gets called when a packet delivery got acknowledged

source

pub fn on_packet_loss<CC: CongestionController, Pub: ConnectionPublisher>( &mut self, packet_number: PacketNumber, lost_bytes: u16, new_loss_burst: bool, now: Timestamp, congestion_controller: &mut CC, path_id: Id, publisher: &mut Pub )

This method gets called when a packet loss is reported

source

pub fn mtu(&self) -> usize

Gets the currently validated maximum transmission unit, not including IP or UDP header len

source

pub fn max_mtu(&self) -> MaxMtu

Returns the maximum size any packet can reach

source

pub fn probed_sized(&self) -> usize

Gets the MTU currently being probed for

Trait Implementations§

source§

impl Clone for Controller

source§

fn clone(&self) -> Controller

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Controller

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Provider for Controller

source§

fn on_transmit<W: Writer>(&mut self, context: &mut W)

Queries the component for any outgoing frames that need to get sent

This method assumes that no other data (other than the packet header) has been written to the supplied WriteContext. This necessitates the caller ensuring the probe packet written by this method to be in its own connection transmission.

source§

impl Provider for Controller

source§

fn timers<Q: Query>(&self, query: &mut Q) -> Result

Notifies the query of any timers owned by the provider Read more
source§

fn next_expiration(&self) -> Option<Timestamp>

Returns the next Timestamp at which the earliest timer is armed in the provider
source§

fn is_armed(&self) -> bool

Returns true if there are any timers armed
source§

fn armed_timer_count(&self) -> usize

Counts the number of armed timers in the provider
source§

fn for_each_timer<F: FnMut(&Timer) -> Result>(&self, f: F)

Iterates over each timer in the provider and calls the provided function
source§

impl Provider for Controller

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
source§

impl<T, U> Upcast<T> for U
where T: UpcastFrom<U>,

source§

fn upcast(self) -> T

source§

impl<T, B> UpcastFrom<Counter<T, B>> for T

source§

fn upcast_from(value: Counter<T, B>) -> T