All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches

Constants for the congestion control. More...

Detailed Description

Constants for the congestion control.

Example usage:

static const congure_reno_snd_consts_t consts = {
.fr = _my_fast_retransmit,
.same_wnd_adv = _my_same_window_advertised,
.init_mss = 1460,
.cwnd_upper = 2190,
.cwnd_lower = 1095,
.init_ssthresh = CONGURE_WND_SIZE_MAX,
.frthresh = 3,
}
static congure_reno_snd_t cong;
// ...
congure_reno_snd_setup(&cong, &const);
void congure_reno_snd_setup(congure_reno_snd_t *c, const congure_reno_snd_consts_t *consts)
Set-up CongURE implementation of TCP Reno driver and constants.
#define CONGURE_WND_SIZE_MAX
Maximum value the window size can take.
Definition congure.h:35
Constants for the congestion control.
Definition reno.h:60
State object for CongURE Reno.
Definition reno.h:172

Definition at line 60 of file reno.h.

#include <reno.h>

Data Fields

void(* fr )(congure_reno_snd_t *c)
 Callback to enter and perform fast retransmit.
 
bool(* same_wnd_adv )(congure_reno_snd_t *c, congure_snd_ack_t *ack)
 Callback to check if the advertised window within an ACK is the same as in the context.
 
void(* ss_cwnd_inc )(congure_reno_snd_t *c)
 Callback to increase congestion window in slow start.
 
void(* ca_cwnd_inc )(congure_reno_snd_t *c)
 Callback to increase congestion window in congestion avoidance.
 
void(* fr_cwnd_dec )(congure_reno_snd_t *c)
 Callback to reset congestion window when entering fast recovery.
 
unsigned init_mss
 Initial maximum segment size of the sender in intiator-defined units.
 
congure_wnd_size_t cwnd_upper
 Initial upper bound for initial window initiator-defined units.
 
congure_wnd_size_t cwnd_lower
 Initial lower bound for initial window initiator-defined units.
 
congure_wnd_size_t init_ssthresh
 Initial slow-start threshold in initiator-defined units.
 
uint8_t frthresh
 Threshold for duplicate ACKs to go into Fast Retransmit.
 

Field Documentation

◆ ca_cwnd_inc

void(* congure_reno_snd_consts_t::ca_cwnd_inc) (congure_reno_snd_t *c)

Callback to increase congestion window in congestion avoidance.

Defaults to

c->cwnd += (c->in_flight_size < c->mss)
? c->in_flight_size
: c->mss;

when set to NULL

Parameters
[in]cThe CongURE state object (callback context is at c->super.ctx)

Definition at line 111 of file reno.h.

◆ cwnd_lower

congure_wnd_size_t congure_reno_snd_consts_t::cwnd_lower

Initial lower bound for initial window initiator-defined units.

1095 bytes in classic TCP-Reno (3/8 of the assumed MSS for Ethernet see RFC 3390).

Definition at line 154 of file reno.h.

◆ cwnd_upper

congure_wnd_size_t congure_reno_snd_consts_t::cwnd_upper

Initial upper bound for initial window initiator-defined units.

2190 bytes in classic TCP-Reno (3/4 of the assumed MSS for Ethernet, see RFC 3390).

Definition at line 146 of file reno.h.

◆ fr

void(* congure_reno_snd_consts_t::fr) (congure_reno_snd_t *c)

Callback to enter and perform fast retransmit.

Parameters
[in]cThe CongURE state object (callback context is at c->super.ctx)

Definition at line 67 of file reno.h.

◆ fr_cwnd_dec

void(* congure_reno_snd_consts_t::fr_cwnd_dec) (congure_reno_snd_t *c)

Callback to reset congestion window when entering fast recovery.

Defaults to

c->ssthresh = max(c->mss * 2, c->cwnd / 2);
c->cwnd = c->ssthresh + (3 * c->mss);

when set to NULL

Parameters
[in]cThe CongURE state object (callback context is at c->super.ctx)

Definition at line 129 of file reno.h.

◆ frthresh

uint8_t congure_reno_snd_consts_t::frthresh

Threshold for duplicate ACKs to go into Fast Retransmit.

Definition at line 164 of file reno.h.

◆ init_mss

unsigned congure_reno_snd_consts_t::init_mss

Initial maximum segment size of the sender in intiator-defined units.

1460 bytes for TCP over Ethernet (see RFC 3390).

Definition at line 138 of file reno.h.

◆ init_ssthresh

congure_wnd_size_t congure_reno_snd_consts_t::init_ssthresh

Initial slow-start threshold in initiator-defined units.

Definition at line 159 of file reno.h.

◆ same_wnd_adv

bool(* congure_reno_snd_consts_t::same_wnd_adv) (congure_reno_snd_t *c, congure_snd_ack_t *ack)

Callback to check if the advertised window within an ACK is the same as in the context.

Parameters
[in]cThe CongURE state object (callback context is at c->super.ctx)
[in]ackThe ACK to check.

Definition at line 77 of file reno.h.

◆ ss_cwnd_inc

void(* congure_reno_snd_consts_t::ss_cwnd_inc) (congure_reno_snd_t *c)

Callback to increase congestion window in slow start.

Defaults to

c->cwnd += c->mss;

when set to NULL

Parameters
[in]cThe CongURE state object (callback context is at c->super.ctx)

Definition at line 93 of file reno.h.


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