Adds minimum RTT probing.
This commit is contained in:
+15
-22
@@ -8,24 +8,15 @@
|
||||
#include <linux/math64.h>
|
||||
|
||||
struct ack_rate {
|
||||
u16 last_rate; /* Last ACK-rate */
|
||||
u32 last_rate; /* Last ACK-rate */
|
||||
u32 last_rate_time; /* Timestamp of the last ACK-rate */
|
||||
u16 curr_rate; /* Current ACK-rate */
|
||||
u16 cnt; /* Used for counting acks */
|
||||
u32 curr_rate; /* Current ACK-rate */
|
||||
u32 cnt; /* Used for counting acks */
|
||||
};
|
||||
|
||||
struct bandwidth_limit_detect {
|
||||
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 timed_rtt {
|
||||
u32 time; /* Time of recording */
|
||||
u32 rtt; /* Measured RTT */
|
||||
};
|
||||
|
||||
/* Based on the BICTCP struct with additions specific for the ROCCET-Algorithm */
|
||||
/* Based on the BICTCP struct with additions specific
|
||||
* for the ROCCET-Algorithm
|
||||
*/
|
||||
struct roccettcp {
|
||||
u32 cnt; /* increase cwnd by 1 after ACKs */
|
||||
u32 last_max_cwnd; /* last maximum snd_cwnd */
|
||||
@@ -41,15 +32,17 @@ struct roccettcp {
|
||||
u32 tcp_cwnd; /* estimated tcp cwnd */
|
||||
u32 curr_rtt; /* the minimum rtt of current round */
|
||||
|
||||
u32 roccet_last_event_time_us; /* The last time ROCCET was triggered */
|
||||
u32 roccet_last_event_time_us; /* The last time ROCCET was
|
||||
* triggered
|
||||
*/
|
||||
bool ece_received; /* Set to true if an ECE bit was received */
|
||||
u32 curr_min_rtt; /* The current observed minRTT */
|
||||
struct timed_rtt 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 */
|
||||
u32 curr_min_rtt; /* The current observed minRTT */
|
||||
u32 next_min_rtt_probe; /* Next time to probe the minRTT */
|
||||
u32 probe_min_rtt_until; /* End of minRTT probing period */
|
||||
u32 cwnd_before_min_rtt_probe; /* cwnd before min RTT probeing */
|
||||
u32 curr_srrtt; /* srRTT calculated based on the latest ACK */
|
||||
u32 next_srrtt_check; /* Next check for srRTT */
|
||||
struct ack_rate ack_rate; /* The last and the current ACK rate */
|
||||
struct bandwidth_limit_detect bw_limit;
|
||||
u32 last_rtt; /* Used for jitter calculation */
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user