您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

52 行
1.7KB

  1. /*
  2. * TCP ROCCET congestion control interface
  3. */
  4. #ifndef __TCP_ROCCET_H
  5. #define __TCP_ROCCET_H 1
  6. #include <linux/math64.h>
  7. struct AckRate {
  8. u16 last_rate; /* Last ACK-rate */
  9. u32 last_rate_time; /* Timestamp of the last ACK-rate */
  10. u16 curr_rate; /* Current ACK-rate */
  11. u16 cnt; /* Used for counting acks */
  12. };
  13. struct BandwidthLimitDetect {
  14. u32 sum_cwnd; /* sum of cwnd during time interval */
  15. u32 sum_acked; /* sum of received acks during time interval */
  16. u32 next_check; /* end/upper bound of time interval */
  17. };
  18. struct TimedRTT {
  19. u32 time; /* Time of recoding */
  20. u32 rtt; /* Measured RTT */
  21. };
  22. /* Based on the BICTCP struct with additions specific for the ROCCET-Algorithm */
  23. struct roccettcp {
  24. u32 cnt; /* increase cwnd by 1 after ACKs */
  25. u32 last_max_cwnd; /* last maximum snd_cwnd */
  26. u32 last_cwnd; /* the last snd_cwnd */
  27. u32 last_time; /* time when updated last_cwnd */
  28. u32 bic_origin_point; /* origin point of bic function */
  29. u32 bic_K; /* time to origin point from the
  30. beginning of the current epoch */
  31. u32 delay_min; /* min delay (usec) */
  32. u32 epoch_start; /* beginning of an epoch */
  33. u32 ack_cnt; /* number of acks */
  34. u32 tcp_cwnd; /* estimated tcp cwnd */
  35. u32 curr_rtt; /* the minimum rtt of current round */
  36. u32 roccet_last_event_time_us; /* The last time ROCCETv2 was triggered */
  37. u32 curr_min_rtt; /* The current observed minRTT */
  38. struct TimedRTT curr_min_rtt_timed; /* The current observed minRTT with
  39. the timestamp when it was observed */
  40. u32 curr_srRTT; /* The srRTT calculated based on the latest ACK */
  41. struct AckRate ack_rate; /* The last and the current ACK rate */
  42. struct BandwidthLimitDetect bw_limit;
  43. u32 last_rtt; /* Used for jitter calculation */
  44. };
  45. #endif /* __TCP_ROCCET_H */