Subject: kern/17367: Activating 'tcp.cwm=1' can dramatically decrease network performance
To: None <gnats-bugs@gnats.netbsd.org>
From: Markus W Kilbinger <kilbi@rad.rwth-aachen.de>
List: netbsd-bugs
Date: 06/23/2002 21:19:42
>Number:         17367
>Category:       kern
>Synopsis:       Activating 'tcp.cwm=1' can dramatically decrease network performance
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jun 23 12:20:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        at least NetBSD 1.6_BETA3 and -current of today
>Organization:
>Environment:
System: NetBSD basis 1.6_BETA3 NetBSD 1.6_BETA3 (BASIS) #0: Fri Jun 21 22:14:48 MEST 2002 kilbi@basis:/usr/src/sys/arch/i386/compile/BASIS i386
Architecture: i386
Machine: i386
>Description:
	I don't know if it's a real bug and whom to blame (client,
	router?). But the effect's of enabling the
	Hughes/Touch/Heidemann Congestion Window Monitoring (cwm)
	algorithm ('sysctl -w tcp.cwm=1') can be dramatically bad.
	(It's much worse if you don't think about this as the reason,
	because it was temporarily turned on by default in the NetBSD
	source tree!)

        In my scenario we have a NetBSD/i386 firewall/inet router with
        ipnat and several NetBSD clients (alpha, i386, macppc, sparc).
        The performance of clients inet connections depends highly on
        the fact if cwm is activated on the client, or not. If it's
        not enabled I can get tcp transfer rates (output!) up to
        several mb/sec. But after activating cwm they break down to
        10-30 kb/sec! Deactivating it immediately brings back the
        mb/sec performance.
>How-To-Repeat:
	Setting 'sysctl -w tcp.cwm=1' on a client machine and try to
	upload/transfer files/data from the client machine over a
	NetBSD firewall/router with ipnat.
>Fix:
	Not provided. Maybe first should be clarified if this is a
	problem of NetBSD routers, used as firewalls with ipnat, or a
	problem of the client side cwm implementation. 'tcp.cwm=0'
	should be the default as long as activating it can be that
	dramatical.
>Release-Note:
>Audit-Trail:
>Unformatted: