LibQuicR
quicr::TransportConfig Struct Reference

Configuration shared by client and server QUIC transports. More...

#include <config.h>

Public Attributes

std::string tls_cert_filename
 Path to the external PEM certificate chain used by a server. More...
 
std::string tls_key_filename
 Path to the external private-key file corresponding to tls_cert_filename. More...
 
uint32_t time_queue_init_queue_size { 1000 }
 Initial number of time-queue entries to reserve. More...
 
uint32_t time_queue_max_duration { 2000 }
 Maximum time-queue duration in milliseconds. More...
 
uint32_t time_queue_bucket_interval { 500 }
 Time-queue bucket width in milliseconds. More...
 
uint32_t time_queue_rx_size { 1000 }
 Maximum receive time-queue size. More...
 
bool debug { false }
 Whether to enable transport debug processing and logging. More...
 
uint64_t quic_cwin_minimum { 131072 }
 Minimum QUIC congestion window in bytes. More...
 
uint32_t quic_wifi_shadow_rtt_us { 20000 }
 Wi-Fi shadow round-trip time in microseconds. More...
 
uint64_t idle_timeout_ms { 30000 }
 Connection idle timeout and client startup wait in milliseconds. More...
 
CongestionControl congestion_control { CongestionControl::kBbr }
 Congestion controller to use. More...
 
std::string quic_qlog_path
 Path passed to picoquic for qlog output; empty disables qlog. More...
 
uint8_t quic_priority_limit { 0 }
 Lowest numeric priority exempted from picoquic pacing/CC bypass. More...
 
std::size_t max_connections { 2 }
 Maximum active connections per QUIC instance. More...
 
bool ssl_keylog { false }
 Whether to log TLS traffic secrets for QUIC connections. More...
 
std::size_t socket_buffer_size { 1'000'000 }
 Requested UDP socket buffer size in bytes. More...
 
uint32_t callback_queue_size { 2000 }
 Maximum queued transport callbacks before notifications drop. More...
 
uint64_t metrics_sample_ms { 5000 }
 Metrics sampling interval in milliseconds. More...
 
uint64_t initial_max_stream_data { 0 }
 Initial per-stream receive window; zero uses picoquic's default. More...
 
uint64_t initial_max_stream_id { 512 }
 Initial bidirectional and unidirectional stream limit. More...
 
std::size_t quic_shards { 1 }
 Number of picoquic instances used in server mode. More...
 
std::string tls_root_trust_filename
 
bool use_af_xdp { true }
 Whether to use AF_XDP transmit when available, falling back to sendmsg. More...
 

Detailed Description

Configuration shared by client and server QUIC transports.

Member Data Documentation

◆ callback_queue_size

uint32_t quicr::TransportConfig::callback_queue_size { 2000 }

Maximum queued transport callbacks before notifications drop.

◆ congestion_control

CongestionControl quicr::TransportConfig::congestion_control { CongestionControl::kBbr }

Congestion controller to use.

◆ debug

bool quicr::TransportConfig::debug { false }

Whether to enable transport debug processing and logging.

◆ idle_timeout_ms

uint64_t quicr::TransportConfig::idle_timeout_ms { 30000 }

Connection idle timeout and client startup wait in milliseconds.

◆ initial_max_stream_data

uint64_t quicr::TransportConfig::initial_max_stream_data { 0 }

Initial per-stream receive window; zero uses picoquic's default.

◆ initial_max_stream_id

uint64_t quicr::TransportConfig::initial_max_stream_id { 512 }

Initial bidirectional and unidirectional stream limit.

◆ max_connections

std::size_t quicr::TransportConfig::max_connections { 2 }

Maximum active connections per QUIC instance.

◆ metrics_sample_ms

uint64_t quicr::TransportConfig::metrics_sample_ms { 5000 }

Metrics sampling interval in milliseconds.

◆ quic_cwin_minimum

uint64_t quicr::TransportConfig::quic_cwin_minimum { 131072 }

Minimum QUIC congestion window in bytes.

◆ quic_priority_limit

uint8_t quicr::TransportConfig::quic_priority_limit { 0 }

Lowest numeric priority exempted from picoquic pacing/CC bypass.

◆ quic_qlog_path

std::string quicr::TransportConfig::quic_qlog_path

Path passed to picoquic for qlog output; empty disables qlog.

◆ quic_shards

std::size_t quicr::TransportConfig::quic_shards { 1 }

Number of picoquic instances used in server mode.

◆ quic_wifi_shadow_rtt_us

uint32_t quicr::TransportConfig::quic_wifi_shadow_rtt_us { 20000 }

Wi-Fi shadow round-trip time in microseconds.

◆ socket_buffer_size

std::size_t quicr::TransportConfig::socket_buffer_size { 1'000'000 }

Requested UDP socket buffer size in bytes.

◆ ssl_keylog

bool quicr::TransportConfig::ssl_keylog { false }

Whether to log TLS traffic secrets for QUIC connections.

Enabling this permits captured traffic to be decrypted. Use only for controlled diagnostics, protect the resulting key log as secret material, and delete it when no longer needed.

◆ time_queue_bucket_interval

uint32_t quicr::TransportConfig::time_queue_bucket_interval { 500 }

Time-queue bucket width in milliseconds.

◆ time_queue_init_queue_size

uint32_t quicr::TransportConfig::time_queue_init_queue_size { 1000 }

Initial number of time-queue entries to reserve.

◆ time_queue_max_duration

uint32_t quicr::TransportConfig::time_queue_max_duration { 2000 }

Maximum time-queue duration in milliseconds.

Examples
simple_publish/main.cpp, and simple_subscribe/main.cpp.

◆ time_queue_rx_size

uint32_t quicr::TransportConfig::time_queue_rx_size { 1000 }

Maximum receive time-queue size.

◆ tls_cert_filename

std::string quicr::TransportConfig::tls_cert_filename

Path to the external PEM certificate chain used by a server.

The certificate is loaded from this file; certificate material is not stored in this configuration object. Verify its validity period, issuer, signature algorithm, and public-key strength before use.

Examples
simple_publish/main.cpp, and simple_subscribe/main.cpp.

◆ tls_key_filename

std::string quicr::TransportConfig::tls_key_filename

Path to the external private-key file corresponding to tls_cert_filename.

Protect this file with restrictive permissions and keep it outside source control.

Examples
simple_publish/main.cpp, and simple_subscribe/main.cpp.

◆ tls_root_trust_filename

std::string quicr::TransportConfig::tls_root_trust_filename

PEM CA bundle for server certificate and hostname verification; empty disables verification.

◆ use_af_xdp

bool quicr::TransportConfig::use_af_xdp { true }

Whether to use AF_XDP transmit when available, falling back to sendmsg.


The documentation for this struct was generated from the following file: