unprtt.h 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. #ifndef __unp_rtt_h
  2. #define __unp_rtt_h
  3. #include "unp.h"
  4. struct rtt_info {
  5. float rtt_rtt; /* most recent measured RTT, in seconds */
  6. float rtt_srtt; /* smoothed RTT estimator, in seconds */
  7. float rtt_rttvar; /* smoothed mean deviation, in seconds */
  8. float rtt_rto; /* current RTO to use, in seconds */
  9. int rtt_nrexmt; /* # times retransmitted: 0, 1, 2, ... */
  10. uint32_t rtt_base; /* # sec since 1/1/1970 at start */
  11. };
  12. #define RTT_RXTMIN 2 /* min retransmit timeout value, in seconds */
  13. #define RTT_RXTMAX 60 /* max retransmit timeout value, in seconds */
  14. #define RTT_MAXNREXMT 3 /* max # times to retransmit */
  15. /* function prototypes */
  16. void rtt_debug(struct rtt_info *);
  17. void rtt_init(struct rtt_info *);
  18. void rtt_newpack(struct rtt_info *);
  19. int rtt_start(struct rtt_info *);
  20. void rtt_stop(struct rtt_info *, uint32_t);
  21. int rtt_timeout(struct rtt_info *);
  22. uint32_t rtt_ts(struct rtt_info *);
  23. extern int rtt_d_flag; /* can be set to nonzero for addl info */
  24. #endif /* __unp_rtt_h */