From owner-freebsd-net@FreeBSD.ORG Fri Oct 24 22:36:29 2014 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 096512DC for ; Fri, 24 Oct 2014 22:36:29 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DEFB591D for ; Fri, 24 Oct 2014 22:36:28 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id s9OMaSTe094572 for ; Fri, 24 Oct 2014 22:36:28 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 194453] [dummynet] pipe config bw parameter is limited to 2Gbits per second Date: Fri, 24 Oct 2014 22:36:29 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.0-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: hiren@FreeBSD.org X-Bugzilla-Status: In Discussion X-Bugzilla-Priority: Normal X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Oct 2014 22:36:29 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194453 --- Comment #7 from Hiren Panchasara --- (In reply to rizzo from comment #6) > (In reply to Hiren Panchasara from comment #5) > > (In reply to boba from comment #4) > > > (In reply to Hiren Panchasara from comment #2) > > > > (In reply to boba from comment #0) > > > > > It's impossible to create "pipe" with bandwidth higher than 2Gbits per > > > > > second. Possible due to "signed" type of variable. > > > > > > > > > > # ipfw pipe 1 config bw 2700mbit/s > > > > > ipfw: bandwidth too large > > > > > > > > I think you are right that its overflowing because of "signed" type. > > > > > > > > A simple change like this may fix the problem: > > > > > > > > Index: dummynet.c > > > > =================================================================== > > > > --- dummynet.c (revision 270969) > > > > +++ dummynet.c (working copy) > > > > @@ -546,7 +546,7 @@ > > > > if_name[namelen] = '\0'; > > > > *bandwidth = 0; > > > > } else { /* read bandwidth value */ > > > > - int bw; > > > > + uint32_t bw; > > > > char *end = NULL; > > > > > > > > bw = strtoul(arg, &end, 0); > > > > > > This patch will not work at all because of following check few lines after > > > it: > > > > > > if (bw < 0) > > > errx(EX_DATAERR, "bandwidth too large"); > > > > This patch is incomplete. But the check above is needed exactly for the > > reason of catching overflowing values. > > > > Afaik, a couple of things need to be done to make the patch complete: > > 1) make sure whatever datatype we use for bandwidth is uniform across entire > > dummynet codebase. i.e. in struct dn_link inside netinet/ip_dummynet.h > > > > 2) It currently only handles Mb/s and b/s and not Gb/s while setting > > bandwidth. > > > > If someone else doesn't beat me to it, I'll try to spend some time next week > > on this. > > I think it is a waste of time to work on just extending the input range > unless one revises the internals so that dummynet can do shaping > with reasonable accuracy in the Gbit/s range. Thanks a lot for stopping me before I waste much time on it and come up with a wrong fix. Appreciate all the details you provided. I do not have bandwidth to look into a proper fix right now. cheers, Hiren -- You are receiving this mail because: You are the assignee for the bug.