Loading...
Searching...
No Matches
quic.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021 Freie Universität Berlin
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
20#ifndef CONGURE_QUIC_H
21#define CONGURE_QUIC_H
22
23#include "ztimer.h"
24
25#include "congure.h"
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
57typedef struct {
68 void (*cong_event_cb)(void *ctx);
69
74
79
83 uint16_t init_rtt;
84
88 uint16_t max_msg_size;
89
95 uint16_t pc_thresh;
96
100 uint16_t granularity;
101
107
113
120
128
208
226 const congure_quic_snd_consts_t *consts);
227
228#ifdef __cplusplus
229}
230#endif
231
232#endif /* CONGURE_QUIC_H */
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.
uint16_t congure_wnd_size_t
Define type for window size to allow for possible window size scaling.
Definition congure.h:41
uint32_t ztimer_now_t
type for ztimer_now() result
Definition ztimer.h:323
Constants for the congestion control.
Definition quic.h:57
uint16_t pc_thresh
period of time in milliseconds for persistent congestion to be establisched
Definition quic.h:95
uint8_t loss_reduction_numerator
numerator for the factor the congestion window should be reduced by when a new loss event is detected
Definition quic.h:106
uint16_t granularity
system timer granularity in milliseconds (typically 1)
Definition quic.h:100
uint8_t inter_msg_interval_numerator
numerator for the factor N used to adapt the message interval
Definition quic.h:119
uint16_t init_rtt
The assumed RTT in milliseconds before an RTT sample is taken.
Definition quic.h:83
uint8_t loss_reduction_denominator
denominator for the factor the congestion window should be reduced by when a new loss event is detect...
Definition quic.h:112
uint16_t max_msg_size
maximum message size in initiator-defined units.
Definition quic.h:88
uint8_t inter_msg_interval_denominator
denominator for the factor N used to adapt the message interval
Definition quic.h:126
congure_wnd_size_t min_wnd
minimum congestion window size in initiator-defined units.
Definition quic.h:78
congure_wnd_size_t init_wnd
Initial congestion window size in initiator-defined units.
Definition quic.h:73
State object for CongURE QUIC.
Definition quic.h:134
uint16_t smoothed_rtt
The smoothed RTT of a connection between peers in milliseconds.
Definition quic.h:173
ztimer_now_t recovery_start
Timestamp in milliseconds of when congestion was first detected.
Definition quic.h:159
congure_wnd_size_t ssthresh
Slow start threshold in caller-defined units.
Definition quic.h:168
uint16_t rtt_var
The RTT variation.
Definition quic.h:178
const congure_quic_snd_consts_t * consts
Constants.
Definition quic.h:140
congure_snd_t super
see congure_snd_t
Definition quic.h:135
uint16_t min_rtt
The minimum RTT seen over a period of time.
Definition quic.h:183
unsigned in_flight_size
Sum of caller-defined units of message sizes of all messages that are yet not ack'd or declared lost.
Definition quic.h:152
uint16_t limited
Set to one if congestion control should is limited by the application or flow control.
Definition quic.h:194
ztimer_now_t first_rtt_sample
Timestamp in milliseconds of when the first RTT sample was obtained.
Definition quic.h:146
uint16_t max_ack_delay
Advertised maximum amount of time in milliseconds a receiver intends to delay its acknowledgements.
Definition quic.h:206
Base state object for CongURE implementations.
Definition congure.h:51
ztimer API