Re: [tcpm] New Version Notification for draft-touch-tcpm-tcp-edo-01.txt

"Scheffenegger, Richard" <rs@netapp.com> Tue, 06 May 2014 10:13 UTC

Return-Path: <rs@netapp.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E0A01A065C for <tcpm@ietfa.amsl.com>; Tue, 6 May 2014 03:13:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.553
X-Spam-Level:
X-Spam-Status: No, score=-2.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.651, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mh1s2rAP0coJ for <tcpm@ietfa.amsl.com>; Tue, 6 May 2014 03:13:08 -0700 (PDT)
Received: from mx11.netapp.com (mx11.netapp.com [216.240.18.76]) by ietfa.amsl.com (Postfix) with ESMTP id 3BA531A0660 for <tcpm@ietf.org>; Tue, 6 May 2014 03:13:08 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.97,996,1389772800"; d="scan'208";a="121394532"
Received: from vmwexceht02-prd.hq.netapp.com ([10.106.76.240]) by mx11-out.netapp.com with ESMTP; 06 May 2014 03:13:04 -0700
Received: from SACEXCMBX02-PRD.hq.netapp.com ([169.254.1.105]) by vmwexceht02-prd.hq.netapp.com ([10.106.76.240]) with mapi id 14.03.0123.003; Tue, 6 May 2014 03:13:04 -0700
From: "Scheffenegger, Richard" <rs@netapp.com>
To: Joe Touch <touch@isi.edu>, "Olivier.Bonaventure@uclouvain.be" <Olivier.Bonaventure@uclouvain.be>, "Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com>
Thread-Topic: [tcpm] New Version Notification for draft-touch-tcpm-tcp-edo-01.txt
Thread-Index: AQHPZfhMHEvWTWWf5EO6ubLhhdrrN5st07QAgAAE3ICAAFqmAIAAAdMAgADPDgCAALeRgIAC3nOAgAC/AXA=
Date: Tue, 06 May 2014 10:13:03 +0000
Message-ID: <012C3117EDDB3C4781FD802A8C27DD4F4A376C7C@SACEXCMBX02-PRD.hq.netapp.com>
References: <20140425221257.12559.43206.idtracker@ietfa.amsl.com> <2586_1398464386_535ADF82_2586_915_1_535ADF56.9050106@isi.edu> <CF8D8E25-E435-4199-8FD6-3F7066447292@iki.fi> <5363AF84.8090701@mti-systems.com> <5363B397.8090009@isi.edu> <CAO249yeyr5q21-=e6p5azwULOh1_jUsniZ6YPcDYd69av8MMYw@mail.gmail.com> <DCC98F94-EA74-4AAA-94AE-E399A405AF13@isi.edu> <655C07320163294895BBADA28372AF5D2CFE36@FR712WXCHMBA15.zeu.alcatel-lucent.com> <536548D7.5030802@uclouvain.be> <5367B0F1.1000403@isi.edu>
In-Reply-To: <5367B0F1.1000403@isi.edu>
Accept-Language: de-AT, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.106.53.53]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/Fl5NbgiN6oIXthLfh--6vaxtg9M
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] New Version Notification for draft-touch-tcpm-tcp-edo-01.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 May 2014 10:13:10 -0000

> 
> However, now you're back to the NIC issue (which ought not be related):
> 
> > In their IMC paper entitled "Is it Still Possible to Extend TCP?",
> > Michio Honda et al. provide the following recommendation
> > http://conferences.sigcomm.org/imc/2011/docs/p181.pdf
> >
> > "All the NICs we tested correctly copied the options to all the split
> > segments. TSO is now sufficiently commonplace so that designers of
> > extensions to TCP should assume it. The implication is that TCP
> > options must be designed so that when they are duplicated on
> > consecutive segments, this does not adversely affect correctness or
> performance."
> 
> This tells me your TCP interface was implemented incorrectly.
> 
> The correct interface passes options (including the extended option *and
> its associated contents*) ***SEPARATELY*** from the user data.
> 
> If that is done all the way down to the TSO, the TSO will correctly copy
> the option into individual segments correctly.
> 
> If, however, you implement this badly - and pass TCP segments as a whole
> to the offload engine, then the offload engine *has no business* splitting
> or coalescing segments.


I can agree with the assessment, that TSO is typically done wrong, and that the API was not properly designed.

Most TSO NICs only deal with "typical" header flags - from my ECN research I know that non-ECT (CE; ECT(0); ECT(1)) IP flags are not necessarily delivered correctly by LRO (only the IP bits of the first segment that was received are usually handed up to the software TCP stack, even when they change; thus ECN information in up to 200 segments may never reach the TCP layer for handling (and recent measurements also indicate that for ECN, the gating issue is not TCP ECN, but the IP ECN flags getting forwarded end-to-end properly...

On the LRO TCP side, any "unexpected" TCP header bits (EDO wouldn't account for this; setting DO to an invalid value might) would typically stop the fastpath processing, and get individual segments delivered - thus the RFC3168 ECN TCP signaling usually works (as ECE and/or CWR bits are set in those segments).


As for a TSO sender: if the NIC driver is broken, the sending TCP can ensure that the hardware doesn't perform invalid splits on segments containing EDO - it has to be provided as a NIC driver workaround, sure; 


Richard Scheffenegger