Commit b3a92eab authored by Luca De Cicco's avatar Luca De Cicco Committed by David S. Miller

[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: default avatarLuca De Cicco <ldecicco@gmail.com>
Signed-off-by: default avatarStephen Hemminger <shemminger@dxpl.pdx.osdl.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b7d7a9e3
...@@ -82,10 +82,16 @@ static inline u32 westwood_do_filter(u32 a, u32 b) ...@@ -82,10 +82,16 @@ static inline u32 westwood_do_filter(u32 a, u32 b)
return (((7 * a) + b) >> 3); 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); /* If the filter is empty fill it with the first sample of bandwidth */
w->bw_est = westwood_do_filter(w->bw_est, w->bw_ns_est); 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);
}
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment