From owner-freebsd-net Tue Jan 18 6:29:52 2000 Delivered-To: freebsd-net@freebsd.org Received: from info.iet.unipi.it (info.iet.unipi.it [131.114.9.184]) by hub.freebsd.org (Postfix) with ESMTP id 8A17D14D32 for ; Tue, 18 Jan 2000 06:29:48 -0800 (PST) (envelope-from luigi@info.iet.unipi.it) Received: (from luigi@localhost) by info.iet.unipi.it (8.9.3/8.9.3) id PAA59352; Tue, 18 Jan 2000 15:29:44 +0100 (CET) (envelope-from luigi) From: Luigi Rizzo Message-Id: <200001181429.PAA59352@info.iet.unipi.it> Subject: Re: Feature: net.inet.tcp.local_slowstart ? In-Reply-To: <200001181429.PAA59342@info.iet.unipi.it> from Luigi Rizzo at "Jan 18, 2000 03:29:01 pm" To: Luigi Rizzo Date: Tue, 18 Jan 2000 15:29:43 +0100 (CET) Cc: net@freebsd.org X-Mailer: ELM [version 2.4ME+ PL61 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > Hi, > may i add a new sysctl variable, > > net.inet.tcp.local_slowstart > > to control whether or not to do slowstart on local connections ? > FreeBSD now blasts a whole window at the beginning of a connection > when the remote party is on the same subnet. > This at times might cause problems. The above variable would > leave current behaviour unchanged if left to 0 (default), and > do the regular slowstart if set to 1 > > Would go to -current after the release i suppose. forgot to add that the patch is minimal: --- src/sys/netinet/tcp_input.c Thu Oct 14 13:49:38 1999 +++ /sys/netinet/tcp_input.c Mon Jan 17 15:33:49 2000 @@ -89,6 +89,11 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, delayed_ack, CTLFLAG_RW, &tcp_delack_enabled, 0, ""); +static int local_slowstart=1; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, local_slowstart, CTLFLAG_RW, + &local_slowstart, 0, + "Do slowstart even on local networks"); + #ifdef TCP_DROP_SYNFIN static int drop_synfin = 0; SYSCTL_INT(_net_inet_tcp, OID_AUTO, drop_synfin, CTLFLAG_RW, @@ -2228,7 +2233,7 @@ /* * Don't force slow-start on local network. */ - if (!in_localaddr(inp->inp_faddr)) + if (local_slowstart || !in_localaddr(inp->inp_faddr)) tp->snd_cwnd = mss; if (rt->rt_rmx.rmx_ssthresh) { cheers luigi > cheers > luigi > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message