Fix burst processing for WF2Q pipes - do not increase available burst size

unless pipe is idle. This should fix follwing issues:
- 'dummynet: OUCH! pipe should have been idle!' log messages.
- exceeding configured pipe bandwidth.

MFC after:	1 week
This commit is contained in:
Oleg Bulyzhin 2009-12-05 23:27:21 +00:00
parent 454939f33e
commit 22746035ec

View File

@ -1447,7 +1447,9 @@ dummynet_io(struct mbuf **m0, int dir, struct ip_fw_args *fwa)
q->numbytes += pipe->bandwidth;
}
} else { /* WF2Q. */
if (pipe->idle_time < curr_time) {
if (pipe->idle_time < curr_time &&
pipe->scheduler_heap.elements == 0 &&
pipe->not_eligible_heap.elements == 0) {
/* Calculate available burst size. */
pipe->numbytes +=
(curr_time - pipe->idle_time - 1) * pipe->bandwidth;