Skip to main content

SessionRequest

Struct SessionRequest 

Source
pub struct SessionRequest {
    pub duration: Option<Duration>,
    pub interval: Duration,
    pub length: u32,
    pub received_stats: ReceivedStats,
    pub stamp_at: StampAt,
    pub clock: Clock,
    pub dscp: u8,
    pub server_fill: Option<String>,
    pub run_mode: RunMode,
}
Expand description

Requested IRTT protocol and session semantics, reusable across endpoints.

Fields§

§duration: Option<Duration>

Requested run duration.

Some(duration) requests a finite test and must be greater than zero. None requests continuous mode and is encoded on the wire as a zero duration. Use RunMode::NoTest when the caller wants negotiation only without sending probes.

The managed driver stops sending after the negotiated duration. Low-level adapters leave run duration to the caller.

§interval: Duration

Requested spacing between probe sends.

The interval is encoded as nanoseconds in the open request and must be greater than zero. The server may return a different interval depending on the negotiated policy and server restrictions.

The managed driver uses the negotiated interval for cadence. Low-level adapters send whenever called.

§length: u32

Requested echo packet payload length, in bytes.

The value must fit within the UDP payload limit after protocol overhead. A server may reduce the requested length during negotiation.

§received_stats: ReceivedStats

Requested server receive-statistics fields in echo replies.

§stamp_at: StampAt

Requested timestamp placement in echo replies.

§clock: Clock

Requested server clock sources for timestamp fields.

Clock::Unspecified is the wire default meaning “no clock tag was sent” and is not a client mode; opening a session with it is rejected. Request Clock::Wall, Clock::Monotonic, or Clock::Both.

§dscp: u8

Requested DSCP codepoint.

This is the six-bit DSCP value, not the full traffic-class byte, and must be less than or equal to MAX_DSCP_CODEPOINT.

§server_fill: Option<String>

Optional server payload fill request.

None leaves server fill behavior unspecified. Some(value) requests a non-empty server fill mode/value and must not exceed MAX_SERVER_FILL_BYTES bytes when UTF-8 encoded.

§run_mode: RunMode

Whether opening the session should start a probe test or perform a negotiation-only no-test exchange.

Trait Implementations§

Source§

impl Clone for SessionRequest

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SessionRequest

Source§

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

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

impl Default for SessionRequest

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for SessionRequest

Source§

impl PartialEq for SessionRequest

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SessionRequest

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.