kern/72440: Not increment ifp->if_snd.ifq_drops when discarding queue check in ip_output.c

Katsushi Kobayashi ikob at FreeBSD.org
Fri Oct 8 00:30:21 PDT 2004


>Number:         72440
>Category:       kern
>Synopsis:       Not increment ifp->if_snd.ifq_drops when discarding queue check in ip_output.c
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 08 07:30:20 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Katsushi Kobayashi
>Release:        4.1.10
>Organization:
National Institute of Communications Technology
>Environment:
FreeBSD eeyore.koganei.wide.ad.jp 4.10-RELEASE FreeBSD 4.10-RELEASE #3: Thu Oct  7 20:17:39 JST 2004     ikob at eeyore.koganei.wide.ad.jp:/usr/home/ikob/sys/compile/PR  i386
>Description:
I was trying to make a FreeBSD box having 2 network i/f as a IP router. We made
a heavy congestion point in my lab. with one i/f as 100BaseTX and another one
as 10BaseT. We expected to increase send queue counter using "netstat -i -d ".
However, the drop count for congested interface did not increase ever.
>How-To-Repeat:
      netstat -i -d

>Fix:
I guess the following patch could be useful for this issue:

*** ip_output.c.orig    Fri Oct  8 16:22:02 2004
--- ip_output.c Fri Oct  8 16:23:49 2004
***************
*** 426,431 ****
--- 426,432 ----
                ifp->if_snd.ifq_maxlen) {
                        error = ENOBUFS;
                        ipstat.ips_odropped++;
+                       ifp->if_snd.ifq_drops += (ip->ip_len / ifp->if_mtu + 1);
                        goto bad;
        }
  

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list