MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rack_get_decrease

Function rack_get_decrease

freebsd/netinet/tcp_stacks/rack.c:2658–2684  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2656}
2657
2658static uint32_t
2659rack_get_decrease(struct tcp_rack *rack, uint32_t curper, int32_t rtt_diff)
2660{
2661 /*
2662 * norm_grad = rtt_diff / minrtt;
2663 * new_per = curper * (1 - B * norm_grad)
2664 *
2665 * B = rack_gp_decrease_per (default 10%)
2666 * rtt_dif = input var current rtt-diff
2667 * curper = input var current percentage
2668 * minrtt = from rack filter
2669 *
2670 */
2671 uint64_t perf;
2672
2673 perf = (((uint64_t)curper * ((uint64_t)1000000 -
2674 ((uint64_t)rack_gp_decrease_per * (uint64_t)10000 *
2675 (((uint64_t)rtt_diff * (uint64_t)1000000)/
2676 (uint64_t)get_filter_value_small(&rack->r_ctl.rc_gp_min_rtt)))/
2677 (uint64_t)1000000)) /
2678 (uint64_t)1000000);
2679 if (perf > curper) {
2680 /* TSNH */
2681 perf = curper - 1;
2682 }
2683 return ((uint32_t)perf);
2684}
2685
2686static uint32_t
2687rack_decrease_highrtt(struct tcp_rack *rack, uint32_t curper, uint32_t rtt)

Callers 1

rack_decrease_bw_mulFunction · 0.85

Calls 1

get_filter_value_smallFunction · 0.85

Tested by

no test coverage detected