Initial commit for TCP ROCCET source code.

This commit is contained in:
Lukas Prause
2025-10-29 12:03:06 +01:00
parent 78b80502d2
commit ac93bf86dc
7 changed files with 933 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
// Include Guard
#ifndef TCP_ROCCET_STRUCT
#define TCP_ROCCET_STRUCT
#include <linux/math64.h>
struct AckRate {
u16 last_rate;
u32 last_rate_time;
u16 curr_rate;
u16 cnt;
};
struct BandwidthLimitDetect {
u32 sum_cwnd; /* sum of cwnd during time interval */
u32 sum_acked; /* sum of received acks during time interval */
u32 next_check; /* end/upper bound of time interval */
};
struct TimedRTT {
u32 time;
u32 rtt;
};
/* BIC TCP Parameters */
struct bictcp {
u32 cnt; /* increase cwnd by 1 after ACKs */
u32 last_max_cwnd; /* last maximum snd_cwnd */
u32 last_cwnd; /* the last snd_cwnd */
u32 last_time; /* time when updated last_cwnd */
u32 bic_origin_point; /* origin point of bic function */
u32 bic_K; /* time to origin point
from the beginning of the current epoch */
u32 delay_min; /* min delay (usec) */
u32 epoch_start; /* beginning of an epoch */
u32 ack_cnt; /* number of acks */
u32 tcp_cwnd; /* estimated tcp cwnd */
u32 curr_rtt; /* the minimum rtt of current round */
// ROCCETv2 specific
u32 roccet_last_event_time_us; /* The last time ROCCETv2 was triggered */
u32 curr_min_rtt; /* The current observed minRTT */
struct TimedRTT curr_min_rtt_timed; /* The current observed minRTT with the
timestamp when it was observed */
u32 curr_srRTT; /* The srRTT calculated based on the latest ACK */
struct AckRate ack_rate; /* The last and the current ACK rate */
struct BandwidthLimitDetect bw_limit;
u32 last_rtt; /* Used for jitter calculation */
};
#endif /* TCP_ROCCET_STRUCT */