#[non_exhaustive]pub struct Server {
pub max_streams: Option<u64>,
pub gso: Option<bool>,
pub idle_timeout: Option<Duration>,
pub keep_alive: Option<Duration>,
pub mtu_discovery: Option<bool>,
pub preferred_v4: Option<SocketAddrV4>,
pub preferred_v6: Option<SocketAddrV6>,
pub quic_lb_id: Option<ServerId>,
pub quic_lb_nonce: Option<usize>,
}Expand description
The --server-quic-* transport section.
Carries the same per-connection knobs as Client plus the accept-side knobs
(preferred address, QUIC-LB connection IDs).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.max_streams: Option<u64>Maximum number of concurrent QUIC streams per connection (both bidi and uni). Defaults to 1024. MoQ opens a stream per group, so busy endpoints want this high.
gso: Option<bool>Enable UDP generic segmentation offload (GSO). See Client::gso.
idle_timeout: Option<Duration>Idle timeout before an inactive connection is dropped. Defaults to 30s.
keep_alive: Option<Duration>Keep-alive ping interval. Defaults to 5s; set 0s to disable.
Ignored by the quiche backend, which has no keep-alive knob.
mtu_discovery: Option<bool>Enable path MTU discovery. Defaults to off.
preferred_v4: Option<SocketAddrV4>IPv4 address advertised as the QUIC preferred_address.
Supporting clients (Chrome M131+, native Quinn) migrate to this address shortly after the handshake completes. Typical use: handshake on an anycast IP, steady-state on this host’s unicast IP.
Honored by the Quinn and noq backends.
preferred_v6: Option<SocketAddrV6>IPv6 address advertised as the QUIC preferred_address. See Self::preferred_v4.
quic_lb_id: Option<ServerId>Server ID to embed in connection IDs for QUIC-LB compatibility. If set, connection IDs will be derived semi-deterministically.
quic_lb_nonce: Option<usize>Number of random nonce bytes in QUIC-LB connection IDs. Must be at least 4, and server_id + nonce + 1 must not exceed 20.
Trait Implementations§
Source§impl Args for Server
impl Args for Server
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl<'de> Deserialize<'de> for Server
impl<'de> Deserialize<'de> for Server
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl FromArgMatches for Server
impl FromArgMatches for Server
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.