Constants for the congestion control. More...

Detailed Description

Constants for the congestion control.

Example usage (to use the same values as specified in RFC 9002):

static const congure_quic_snd_consts_t consts = {
.cong_event_cb = _maybe_send_one_pkt,
.init_wnd = 12000, // 10 * max_datagram_size
.min_wnd = 2400, // 2 * max_datagram_size
.init_rtt = 333, // kInitialRtt = 333ms
.max_msg_size = 1200, // max_datagram_size
.pc_thresh = 3000, // kPersistentCongestionThreshold = 3s
.granularity = 1, // kGranularity = 1ms
.loss_reduction_numerator = 1, // kLossReductionFactor = .5
.loss_reduction_denominator = 2,
.inter_msg_interval_numerator = 5, // Pacing factor N = 1.25
.inter_msg_interval_denominator = 4,
}
static congure_quic_snd_t cong;
// ...
congure_quic_snd_setup(&cong, &const);
void congure_quic_snd_setup(congure_quic_snd_t *c, const congure_quic_snd_consts_t *consts)
Set's up the driver for a CongURE QUIC object.
Constants for the congestion control.
Definition: quic.h:57
void(* cong_event_cb)(void *ctx)
congestion event callback
Definition: quic.h:68
State object for CongURE QUIC.
Definition: quic.h:134

Definition at line 57 of file quic.h.

#include <quic.h>

Data Fields

void(* cong_event_cb )(void *ctx)
 congestion event callback More...
 
congure_wnd_size_t init_wnd
 Initial congestion window size in initiator-defined units.
 
congure_wnd_size_t min_wnd
 minimum congestion window size in initiator-defined units.
 
uint16_t init_rtt
 The assumed RTT in milliseconds before an RTT sample is taken.
 
uint16_t max_msg_size
 maximum message size in initiator-defined units.
 
uint16_t pc_thresh
 period of time in milliseconds for persistent congestion to be establisched More...
 
uint16_t granularity
 system timer granularity in milliseconds (typically 1)
 
uint8_t loss_reduction_numerator
 numerator for the factor the congestion window should be reduced by when a new loss event is detected
 
uint8_t loss_reduction_denominator
 denominator for the factor the congestion window should be reduced by when a new loss event is detected
 
uint8_t inter_msg_interval_numerator
 numerator for the factor N used to adapt the message interval More...
 
uint8_t inter_msg_interval_denominator
 denominator for the factor N used to adapt the message interval More...
 

Field Documentation

◆ cong_event_cb

void(* congure_quic_snd_consts_t::cong_event_cb) (void *ctx)

congestion event callback

This callback is called when congestion event is detected by message loss or a CE notification. QUIC typically uses this to send a packet to speed up loss recovery.

Parameters
[in]ctxcallback context

Definition at line 68 of file quic.h.

◆ inter_msg_interval_denominator

uint8_t congure_quic_snd_consts_t::inter_msg_interval_denominator

denominator for the factor N used to adapt the message interval

See also
RFC 9002, section 7.7

Definition at line 126 of file quic.h.

◆ inter_msg_interval_numerator

uint8_t congure_quic_snd_consts_t::inter_msg_interval_numerator

numerator for the factor N used to adapt the message interval

See also
RFC 9002, section 7.7

Definition at line 119 of file quic.h.

◆ pc_thresh

uint16_t congure_quic_snd_consts_t::pc_thresh

period of time in milliseconds for persistent congestion to be establisched

See also
RFC 9002, section 7.6

Definition at line 95 of file quic.h.


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