Re: RFC 1323 implementation

Hsiao-keng Jerry Chu <Jerry.Chu@Eng.Sun.COM> Fri, 01 May 1998 23:01 UTC

Delivery-Date: Fri, 01 May 1998 19:01:19 -0400
Return-Path: tcplw-relay@services.BSDI.COM
Received: from cnri.reston.va.us (ns.cnri.reston.va.us [132.151.1.1]) by ietf.org (8.8.5/8.8.7a) with ESMTP id TAA13928 for <ietf-archive@ietf.org>; Fri, 1 May 1998 19:01:08 -0400 (EDT)
Received: from services.BSDI.COM (services.BSDI.COM [205.230.225.19]) by cnri.reston.va.us (8.8.5/8.8.7a) with ESMTP id TAA23016 for <IETF-archive@cnri.reston.va.us>; Fri, 1 May 1998 19:03:34 -0400 (EDT)
Received: (from daemon@localhost) by services.BSDI.COM (8.8.7/8.8.8) id QAA17697 for tcplw-list@bsdi.com; Fri, 1 May 1998 16:59:39 -0600 (MDT)
Received: from mailfilter.bsdi.com (mailfilter.BSDI.COM [205.230.225.21]) by services.BSDI.COM (8.8.7/8.8.8) with ESMTP id QAA17690; Fri, 1 May 1998 16:59:35 -0600 (MDT)
Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) by mailfilter.bsdi.com (BSDI-MF 1.0) with SMTP id QAA28579 env-from (Jerry.Chu@eng.Sun.COM); Fri, 1 May 1998 16:58:39 -0600 (MDT)
Received: from sunmail1.Sun.COM ([129.145.1.2]) by mercury.Sun.COM (SMI-8.6/mail.byaddr) with SMTP id PAA13572; Fri, 1 May 1998 15:59:32 -0700
Received: from jurassic.eng.sun.com by sunmail1.Sun.COM (SMI-8.6/SMI-4.1) id PAA18412; Fri, 1 May 1998 15:59:29 -0700
Received: from taipei.eng.sun.com (taipei [129.146.86.158]) by jurassic.eng.sun.com (8.9.0.Beta7+Sun/8.9.0.Beta7) with ESMTP id PAA23154; Fri, 1 May 1998 15:59:30 -0700 (PDT)
Received: (from hkchu@localhost) by taipei.eng.sun.com (8.8.8+Sun/8.8.8) id PAA22730; Fri, 1 May 1998 15:59:05 -0700 (PDT)
Date: Fri, 01 May 1998 15:59:05 -0700
From: Hsiao-keng Jerry Chu <Jerry.Chu@Eng.Sun.COM>
Message-Id: <199805012259.PAA22730@taipei.eng.sun.com>
To: dab@bsdi.com
Subject: Re: RFC 1323 implementation
Cc: tcplw@bsdi.com, tcp-impl@cthulhu.engr.sgi.com
X-Sun-Charset: US-ASCII

	Vendor: Sun Microsystems, Inc.
	Product: Solaris
	    Version: 2.6
	    Checklist items: 1-14 (except for a couple of minor known bugs
		described below)

	By default the active open side will NOT initiate any window scale/
	timestamp options unless necessary (e.g. app specifying a >= 64k
	receive buffer size). The can be overridden by some system tunables.

------------------------------------------------
	      _  Section 2.2
	  1. |X|   Window Scale Option
	  2. |X|   Only send in SYN/ACK if received in SYN
	  3. |X|   Window Scale size based on receive buffer size

	      _  Section 2.3
	  4. |X|   Shift values > 14 are logged and treated as 14.

=> We treat values > 14 as 14 but don't log an error.

	      _  Section 3.2
	  5. |x|   Timestamps Option
	  6. |x|   Only send in SYN/ACK if received in SYN
	  7. |x|   RTT calculations based on Timestamps

	      _  Section 3.4
	 *8. |x|   Update TS.Recent if:
	             SEG.TSval >= TSrecent and SEG.SEQ <= Last.ACK.sent

	      _  Section 4.x
	  9. |X|   PAWS
	 10. |X|   "invalidate" TS.Recent if idle > 24 days.
 
	      _  Appendix A:
	*11. |X|   TCP Maxseg option: MSS = MTU - fixed IP/TCP header

=> We just discovered a bug, although minor, when some IP option is
=> enabled. The size of the IP option gets subtracted from MSS by mistake.
=> Since we implemented 12/13 correctly, this only unnecessarily reduces
=> the effective usable payload size. The bug will be fixed asap.

	*12. |X|   On output: adjust TCP data length for TCP options
	*13. |X|              adjust TCP data length for IP options

	      _  Appendix C:
	*14. |X|   Disable Karn algorithm w/RTTM

* New/changed items from RFC 1323.