47 #define INITIAL_LINK_ESTIMATE 16
49 #define COLLECT_LINK_ESTIMATE_ALPHA ((3 * (COLLECT_LINK_ESTIMATE_UNIT)) / 8)
51 #define MAX_ESTIMATES 255
56 #define PRINTF(...) printf(__VA_ARGS__)
68 le->num_estimates = 0;
69 le->etx_accumulator = COLLECT_LINK_ESTIMATE_UNIT;
83 if(le->num_estimates == 0) {
84 le->etx_accumulator = tx * COLLECT_LINK_ESTIMATE_UNIT;
87 if(le->num_estimates < MAX_ESTIMATES) {
91 le->etx_accumulator = (((uint32_t)tx * COLLECT_LINK_ESTIMATE_UNIT) *
92 COLLECT_LINK_ESTIMATE_ALPHA +
93 le->etx_accumulator * (COLLECT_LINK_ESTIMATE_UNIT -
94 COLLECT_LINK_ESTIMATE_ALPHA)) /
95 COLLECT_LINK_ESTIMATE_UNIT;
122 if(le->num_estimates == 0) {
123 return INITIAL_LINK_ESTIMATE * COLLECT_LINK_ESTIMATE_UNIT;
126 return le->etx_accumulator;
133 return le->num_estimates;