From nobody@FreeBSD.org  Thu Nov  9 10:28:04 2006
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id C4AF316A403
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  9 Nov 2006 10:28:04 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id A938243D7F
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  9 Nov 2006 10:28:01 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id kA9AS0H4077636
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 9 Nov 2006 10:28:01 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id kA9AS0gU077635;
	Thu, 9 Nov 2006 10:28:00 GMT
	(envelope-from nobody)
Message-Id: <200611091028.kA9AS0gU077635@www.freebsd.org>
Date: Thu, 9 Nov 2006 10:28:00 GMT
From: Alexey Kouznetsov<kuznec@hcn-strela.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: ipfw (dummynet) do not allow to set queue length > 100 packets
X-Send-Pr-Version: www-3.0

>Number:         105330
>Category:       kern
>Synopsis:       [ipfw] [patch] ipfw (dummynet) does not allow to set queue length > 100 packets
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ipfw
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 09 10:30:24 GMT 2006
>Closed-Date:    Mon Jun 06 08:04:25 UTC 2011
>Last-Modified:  Mon Jun 06 08:04:25 UTC 2011
>Originator:     Alexey Kouznetsov
>Release:        6.2-PRERELEASE cvsuped 2006.11.07
>Organization:
HCN Strela
>Environment:
FreeBSD lg02.hcn-strela.ru 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #1: Wed Nov  8 20:13:14 MSK 2006     root@lg02.hcn-strela.ru:/usr/obj/usr/src/sys/STRELA20060511  i386
>Description:
If we have fast connection and want to use longer queue for faster pipes we may want to set up longer queue. But we do not able to set the queue length more then 100 packets
# /sbin/ipfw pipe  107 config mask dst-ip 0xffffffff bw 10Mbit/s queue 600 gred 0.002/100/300/0.1
ipfw: 2 <= queue size <= 100

>How-To-Repeat:
Try to set queue length > 100 packets
# /sbin/ipfw pipe  107 config mask dst-ip 0xffffffff bw 10Mbit/s queue 600 gred 0.002/100/300/0.1
ipfw: 2 <= queue size <= 100

>Fix:
Change sbin/ipfw/ipfw2.c and sys/netinet/ip_dummynet.c and increase check value to bigger value
as far as this value is 
int qsize, then we can use values up to 65000 what give us queue about 100 MB (for 1500 mtu)

*** sys/netinet/ip_dummynet.c.orig      Thu Nov  9 13:14:11 2006
--- sys/netinet/ip_dummynet.c   Thu Nov  9 13:14:24 2006
***************
*** 1588,1594 ****
      } else {
        if (x->qsize == 0)
            x->qsize = 50 ;
!       if (x->qsize > 100)
            x->qsize = 50 ;
      }
      /* configuring RED */
--- 1588,1594 ----
      } else {
        if (x->qsize == 0)
            x->qsize = 50 ;
!       if (x->qsize > 65000)
            x->qsize = 50 ;
      }
      /* configuring RED */


*** sbin/ipfw/ipfw2.c.orig      Thu Nov  9 13:13:21 2006
--- sbin/ipfw/ipfw2.c   Thu Nov  9 13:13:54 2006
***************
*** 3477,3484 ****
                if (p.fs.qsize > 1024*1024)
                        errx(EX_DATAERR, "queue size must be < 1MB");
        } else {
!               if (p.fs.qsize > 100)
!                       errx(EX_DATAERR, "2 <= queue size <= 100");
        }
        if (p.fs.flags_fs & DN_IS_RED) {
                size_t len;
--- 3477,3484 ----
                if (p.fs.qsize > 1024*1024)
                        errx(EX_DATAERR, "queue size must be < 1MB");
        } else {
!               if (p.fs.qsize > 65000)
!                       errx(EX_DATAERR, "2 <= queue size <= 65000");
        }
        if (p.fs.flags_fs & DN_IS_RED) {
                size_t len;

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-ipfw 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Thu Nov 9 14:44:40 UTC 2006 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=105330 
State-Changed-From-To: open->closed 
State-Changed-By: ae 
State-Changed-When: Mon Jun 6 08:03:30 UTC 2011 
State-Changed-Why:  
The sysctl(8) variables net.inet.ip.dummynet.pipe_byte_limit and 
net.inet.ip.dummynet.pipe_slot_limit control the maximum lengths 
that can be specified. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=105330 
>Unformatted:
