From luigi@iet.unipi.it  Wed Mar 19 02:45:37 1997
Received: from prova.iet.unipi.it (prova.iet.unipi.it [131.114.9.236])
          by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id CAA15905
          for <FreeBSD-gnats-submit@freebsd.org>; Wed, 19 Mar 1997 02:45:09 -0800 (PST)
Received: (from luigi@localhost) by prova.iet.unipi.it (8.6.12/8.6.12) id LAA05550; Wed, 19 Mar 1997 11:37:32 +0100
Message-Id: <199703191037.LAA05550@prova.iet.unipi.it>
Date: Wed, 19 Mar 1997 11:37:32 +0100
From: Luigi Rizzo <luigi@iet.unipi.it>
Reply-To: luigi@iet.unipi.it
To: FreeBSD-gnats-submit@freebsd.org
Subject: No initial slow start
X-Send-Pr-Version: 3.2

>Number:         3036
>Category:       kern
>Synopsis:       No initial slow start
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 19 02:50:01 PST 1997
>Closed-Date:    Wed Mar 19 03:50:16 PST 1997
>Last-Modified:  Wed Mar 19 03:50:44 PST 1997
>Originator:     Luigi Rizzo
>Release:        FreeBSD 2.1.7 and 2.2, possibly 3.0 as well
>Organization:
DEIT
>Environment:

	FreeBSD 2.1.X, 2.2.X

>Description:

	our implementation of TCP does not do "slow start" at
	connection opening on "local" networks. Too bad, because of
	the way "SUBNETSARELOCAL" is defined in in.c all addresses on
	the same CLASS_A, CLASS_B or CLASS_C network are considered
	local irrespective of netmasks.

	This bug came in around rev. 1.11 of tcp_input.c when TTCP
	support was enabled. Since then TTCP has become non optional
	in 1.14

        I reported it around september when I first noticed it across
	my ppp link, and there was some agreement (from Garret I
	believe) that at least workaround #2 below was to become the
	default. Unfortunately the patch has probably been forgotten.

>How-To-Repeat:

        use TCP between hosts sharing the same upper 16-bit of a
	CLASS_B address.

>Fix:
	
[workaround #1] define SUBNETSARELOCAL=0 in the kernel config file. 

[workaround #2] change the default definition of SUBNETSARELOCAL to 0 in
    file in.c

[fix] i am not sure at all if the "optimization" indicated above is
    acceptable, especially for non-TTCP stuff. At the very least it
    should be used only after TTCP has been negotiated.


	Luigi
====================================================================
Luigi Rizzo                     Dip. di Ingegneria dell'Informazione
email: luigi@iet.unipi.it       Universita' di Pisa
tel: +39-50-568533              via Diotisalvi 2, 56126 PISA (Italy)
fax: +39-50-568522              http://www.iet.unipi.it/~luigi/
====================================================================
>Release-Note:
>Audit-Trail:

From: David Greenman <dg@root.com>
To: luigi@iet.unipi.it
Cc: FreeBSD-gnats-submit@freebsd.org
Subject: Re: kern/3036: No initial slow start 
Date: Wed, 19 Mar 1997 03:13:30 -0800

 >>Synopsis:       No initial slow start
 ...
 >	FreeBSD 2.1.X, 2.2.X
 ...
 >>Fix:
 >	
 >[workaround #1] define SUBNETSARELOCAL=0 in the kernel config file. 
 >
 >[workaround #2] change the default definition of SUBNETSARELOCAL to 0 in
 >    file in.c
 >
 >[fix] i am not sure at all if the "optimization" indicated above is
 >    acceptable, especially for non-TTCP stuff. At the very least it
 >    should be used only after TTCP has been negotiated.
 
    The change was made in rev 1.25 of in.c:
 
 revision 1.25
 date: 1996/09/09 20:17:24;  author: wollman;  state: Exp;  lines: +2 -2
 branches:  1.25.4;
 Set subnetsarelocal to false.  In a classless world, the other case
 is almost never useful.  (This is only a quick hack; someone should
 go back and delete the entire subnetsarelocal==1 code path.)
 
    This is the same revision that went into FreeBSD 2.2, so the problem
 should not exist there.
 
 -DG
 
 David Greenman
 Core-team/Principal Architect, The FreeBSD Project
State-Changed-From-To: open->closed 
State-Changed-By: davidg 
State-Changed-When: Wed Mar 19 03:50:16 PST 1997 
State-Changed-Why:  
This problem was fixed in rev 1.25 of in.c. 
>Unformatted:
