Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

52 Zeilen
1.7KB

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