Struct quicr::Config[][src]

pub struct Config {
    pub max_remote_bi_streams: u16,
    pub max_remote_uni_streams: u16,
    pub idle_timeout: u16,
    pub stream_receive_window: u32,
    pub receive_window: u32,
    pub accept_buffer: u32,
    pub max_tlps: u32,
    pub reordering_threshold: u32,
    pub time_reordering_fraction: u16,
    pub using_time_loss_detection: bool,
    pub min_tlp_timeout: u64,
    pub min_rto_timeout: u64,
    pub delayed_ack_timeout: u64,
    pub default_initial_rtt: u64,
    pub default_mss: u64,
    pub initial_window: u64,
    pub minimum_window: u64,
    pub loss_reduction_factor: u16,
    pub protocols: Vec<Box<[u8]>>,
    pub keylog: Option<PathBuf>,
    pub use_stateless_retry: bool,
}

Parameters governing the core QUIC state machine.

Fields

Maximum number of peer-initiated bidirectional streams that may exist at one time.

Maximum number of peer-initiated unidirectional streams that may exist at one time.

Maximum duration of inactivity to accept before timing out the connection (s).

Maximum value is 600 seconds. The actual value used is the minimum of this and the peer's own idle timeout.

Maximum number of bytes the peer may transmit on any one stream before becoming blocked.

This should be set to at least the expected connection latency multiplied by the maximum desired throughput. Setting this smaller than receive_window helps ensure that a single stream doesn't monopolize receive buffers, which may otherwise occur if the application chooses not to read from a large stream for a time while still requiring data on other streams.

Maximum number of bytes the peer may transmit across all streams of a connection before becoming blocked.

This should be set to at least the expected connection latency multiplied by the maximum desired throughput. Larger values can be useful to allow maximum throughput within a stream while another is blocked.

Maximum number of incoming connections to buffer.

Calling Endpoint::accept removes a connection from the buffer, so this does not need to be large.

Maximum number of tail loss probes before an RTO fires.

Maximum reordering in packet number space before FACK style loss detection considers a packet lost.

Maximum reordering in time space before time based loss detection considers a packet lost. 0.16 format

Whether time based loss detection is in use. If false, uses FACK style loss detection.

Minimum time in the future a tail loss probe alarm may be set for (μs).

Minimum time in the future an RTO alarm may be set for (μs).

The length of the peer’s delayed ack timer (μs).

The default RTT used before an RTT sample is taken (μs)

The default max packet size used for calculating default and minimum congestion windows.

Default limit on the amount of outstanding data in bytes.

Default minimum congestion window.

Reduction in congestion window when a new loss event is detected. 0.16 format

List of supported application protocols.

If empty, application-layer protocol negotiation will not be preformed.

Path to write NSS SSLKEYLOGFILE-compatible key log.

Enabling this compromises security by committing secret information to disk. Useful for debugging communications when using tools like Wireshark.

Whether to force clients to prove they can receive responses before allocating resources for them.

This adds a round trip to the handshake, increasing connection establishment latency, in exchange for improved resistance to denial of service attacks.

Only meaningful for endpoints that accept incoming connections.

Trait Implementations

impl Default for Config
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl Send for Config

impl Sync for Config