From owner-freebsd-net@FreeBSD.ORG Fri Oct 17 15:07:15 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 11C4016A4B3 for ; Fri, 17 Oct 2003 15:07:15 -0700 (PDT) Received: from mailtoaster1.pipeline.ch (mailtoaster1.pipeline.ch [62.48.0.70]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA38343FDD for ; Fri, 17 Oct 2003 15:07:13 -0700 (PDT) (envelope-from oppermann@pipeline.ch) Received: (qmail 98850 invoked from network); 17 Oct 2003 22:09:26 -0000 Received: from unknown (HELO pipeline.ch) ([62.48.0.53]) (envelope-sender ) by mailtoaster1.pipeline.ch (qmail-ldap-1.03) with SMTP for ; 17 Oct 2003 22:09:26 -0000 Message-ID: <3F9067AD.A6551D07@pipeline.ch> Date: Sat, 18 Oct 2003 00:05:33 +0200 From: Andre Oppermann X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Carl Mascott References: <200310172104.h9HL4EK3000733@callisto.local> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: freebsd-net@freebsd.org Subject: Re: TCP window size issues X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.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, 17 Oct 2003 22:07:15 -0000 Carl Mascott wrote: > > Actually I have just fixed it in my copy of 4.8-R. I have a document > that describes the problem and my solution. I could send you that > and/or a set of patches. You might want to sketch out your own > solution before you look at mine, though. Also, I'm not done > testing mine yet. The patch in PR11966 has already been applied. It does not fix it. I've fixed it by redoing this check in tcp_input.c::tcp_mss(): if ((bufsize = rt->rt_rmx.rmx_sendpipe) == 0) bufsize = so->sn_snd.sb_hiwat; to: if ((so->so_snd.sb_hiwat == tcp_sendspace) && rt->rt_rmx.rmx_sendpipe) bufsize = rt->rt_rmx.rmx_sendpipe; else bufsize = so->so_snd.sb_hiwat; The theory goes that with default buffers so_snd.sb_hiwat and tcp_sendspace have the same size. If that is actually the case, we use whatever we've got from the metrics. If not, the user did some changes and we take that and ignore the metrics value. This is not yet tested in reality... just theoretical ;-) Anyway, I'm interested in your solutions as well. -- Andre > > Carl Mascott wrote: > > > > > > 2. The 4.4BSD TCP implementation has never had the correct precedence > > > rules for setting window sizes. App-set values should take > > > precedence over all others. Routing table values should take > > > precedence over kernel default values. The fix for PR 11966 > > > alters the behavior but still doesn't implement these precedence > > > rules. > > > > I'll fix this in my tcp_hostcache patch currently under review by > > Sam Leffler and Ruslan Ermilov (however that is for -CURRENT).