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
void(* fr)(congure_reno_snd_t *c)
Callback to enter and perform fast retransmit.
Definition reno.h:67
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: