mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
[TCP] Westwood: bandwidth filter startup
The bandwidth estimate filter is now initialized with the first sample in order to have better performances in the case of small file transfers. Signed-off-by: Luca De Cicco <ldecicco@gmail.com> Signed-off-by: Stephen Hemminger <shemminger@dxpl.pdx.osdl.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b7d7a9e3c9
commit
b3a92eabe5
@ -82,10 +82,16 @@ static inline u32 westwood_do_filter(u32 a, u32 b)
|
||||
return (((7 * a) + b) >> 3);
|
||||
}
|
||||
|
||||
static inline void westwood_filter(struct westwood *w, u32 delta)
|
||||
static void westwood_filter(struct westwood *w, u32 delta)
|
||||
{
|
||||
w->bw_ns_est = westwood_do_filter(w->bw_ns_est, w->bk / delta);
|
||||
w->bw_est = westwood_do_filter(w->bw_est, w->bw_ns_est);
|
||||
/* If the filter is empty fill it with the first sample of bandwidth */
|
||||
if (w->bw_ns_est == 0 && w->bw_est == 0) {
|
||||
w->bw_ns_est = w->bk / delta;
|
||||
w->bw_est = w->bw_ns_est;
|
||||
} else {
|
||||
w->bw_ns_est = westwood_do_filter(w->bw_ns_est, w->bk / delta);
|
||||
w->bw_est = westwood_do_filter(w->bw_est, w->bw_ns_est);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user