svn commit: r213265 - head/sys/netinet/ipfw
Luigi Rizzo
luigi at FreeBSD.org
Wed Sep 29 09:22:13 UTC 2010
Author: luigi
Date: Wed Sep 29 09:22:12 2010
New Revision: 213265
URL: http://svn.freebsd.org/changeset/base/213265
Log:
fix handling of initial credit for an idle pipe.
This fixes the bug where setting bw > 1 MTU/tick resulted in
infinite bandwidth if io_fast=1
PR: 147245 148429
Obtained from: Riccardo Panicucci
MFC after: 3 days
Modified:
head/sys/netinet/ipfw/ip_dn_io.c
Modified: head/sys/netinet/ipfw/ip_dn_io.c
==============================================================================
--- head/sys/netinet/ipfw/ip_dn_io.c Wed Sep 29 09:20:18 2010 (r213264)
+++ head/sys/netinet/ipfw/ip_dn_io.c Wed Sep 29 09:22:12 2010 (r213265)
@@ -752,8 +752,11 @@ dummynet_io(struct mbuf **m0, int dir, s
}
/* compute the initial allowance */
- {
+ if (si->idle_time < dn_cfg.curr_time) {
+ /* Do this only on the first packet on an idle pipe */
struct dn_link *p = &fs->sched->link;
+
+ si->sched_time = dn_cfg.curr_time;
si->credit = dn_cfg.io_fast ? p->bandwidth : 0;
if (p->burst) {
uint64_t burst = (dn_cfg.curr_time - si->idle_time) * p->bandwidth;
More information about the svn-src-all
mailing list