A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
Loading...
Searching...
No Matches
a11::net::WebRtcConfiguration Struct Reference

ICE, fragmentation, and binding settings for a WebRTC connection. More...

#include <cpp/a11/net/webrtc_wire_stream.h>

Public Member Functions

absl::Status Validate () const
 

Public Attributes

std::optional< size_t > max_message_size
 Advertised channel ceiling.
 
size_t channel_split_size
 A11 packet size below SCTP limits.
 
std::optional< size_t > mtu
 Network MTU SCTP builds packets to, in bytes.
 
bool enable_ice_udp_mux
 Reuse one UDP socket for ICE candidates.
 
std::vector< std::string > stun_servers
 STUN URLs used for NAT discovery.
 
std::vector< TurnServer > turn_servers
 Fallback relay servers.
 
std::optional< std::pair< std::uint16_t, std::uint16_t > > preferred_port_range
 Optional inclusive local UDP port range for ICE.
 
std::optional< std::string > bind_address
 Optional local candidate address.
 
size_t desired_channels
 Data channels a client opens and replenishes.
 
size_t max_channels = 8
 Data channels a server admits per peer.
 
bool path_mtu_discovery = true
 Discover the path MTU by probing, instead of assuming mtu.
 
size_t max_discovered_mtu = 9216
 Bounds and timers for the search.
 
absl::Duration probe_timeout = absl::Milliseconds(500)
 How long one probe has to be acknowledged before it counts as lost.
 
absl::Duration path_mtu_raise_interval = absl::Seconds(600)
 Delay before searching upward again after convergence.
 
absl::Duration path_mtu_startup_retry = absl::Milliseconds(250)
 Delay before retrying while the SCTP association is unavailable.
 

Detailed Description

ICE, fragmentation, and binding settings for a WebRTC connection.

Lists the STUN and TURN servers used for ICE, the message size at which A11 fragments large logical messages, and optional local port/address binding.

Member Function Documentation

◆ Validate()

absl::Status a11::net::WebRtcConfiguration::Validate ( ) const
Returns
OK if the configuration is internally consistent.

Member Data Documentation

◆ bind_address

std::optional<std::string> a11::net::WebRtcConfiguration::bind_address

Optional local candidate address.

◆ channel_split_size

size_t a11::net::WebRtcConfiguration::channel_split_size
Initial value:
=
48 * 1024

A11 packet size below SCTP limits.

◆ desired_channels

size_t a11::net::WebRtcConfiguration::desired_channels
Initial value:
=
8

Data channels a client opens and replenishes.

◆ enable_ice_udp_mux

bool a11::net::WebRtcConfiguration::enable_ice_udp_mux
Initial value:
=
false

Reuse one UDP socket for ICE candidates.

◆ max_channels

size_t a11::net::WebRtcConfiguration::max_channels = 8

Data channels a server admits per peer.

◆ max_discovered_mtu

size_t a11::net::WebRtcConfiguration::max_discovered_mtu = 9216

Bounds and timers for the search.

See also
internal::PathMtuOptions

◆ max_message_size

std::optional<size_t> a11::net::WebRtcConfiguration::max_message_size
Initial value:
=
64 * 1024

Advertised channel ceiling.

◆ mtu

std::optional<size_t> a11::net::WebRtcConfiguration::mtu

Network MTU SCTP builds packets to, in bytes.

Absent = 1280.

The 1280-byte default follows RFC 8261 and works without path information. Set a larger value only for a path whose MTU is known; an oversized value can prevent fragmented messages from arriving.

◆ path_mtu_discovery

bool a11::net::WebRtcConfiguration::path_mtu_discovery = true

Discover the path MTU by probing, instead of assuming mtu.

Discovery starts from mtu and raises it only after a burst of padded SCTP HEARTBEAT probes is acknowledged. Application traffic waits while testing a candidate above the confirmed size. Each peer discovers its own send path; peers without discovery support keep the configured MTU.

◆ path_mtu_raise_interval

absl::Duration a11::net::WebRtcConfiguration::path_mtu_raise_interval = absl::Seconds(600)

Delay before searching upward again after convergence.

◆ path_mtu_startup_retry

absl::Duration a11::net::WebRtcConfiguration::path_mtu_startup_retry = absl::Milliseconds(250)

Delay before retrying while the SCTP association is unavailable.

◆ preferred_port_range

std::optional<std::pair<std::uint16_t, std::uint16_t> > a11::net::WebRtcConfiguration::preferred_port_range

Optional inclusive local UDP port range for ICE.

◆ probe_timeout

absl::Duration a11::net::WebRtcConfiguration::probe_timeout = absl::Milliseconds(500)

How long one probe has to be acknowledged before it counts as lost.

◆ stun_servers

std::vector<std::string> a11::net::WebRtcConfiguration::stun_servers

STUN URLs used for NAT discovery.

◆ turn_servers

std::vector<TurnServer> a11::net::WebRtcConfiguration::turn_servers

Fallback relay servers.


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