[Spud] Segment offload for UDP-based protocols Re: [QUIC] Requirements

Brian Trammell <ietf@trammell.ch> Thu, 09 June 2016 10:42 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9850C12D0B9; Thu, 9 Jun 2016 03:42:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.328
X-Spam-Level:
X-Spam-Status: No, score=-3.328 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 g97HKFCbN3Yh; Thu, 9 Jun 2016 03:42:01 -0700 (PDT)
Received: from trammell.ch (trammell.ch [5.148.172.66]) by ietfa.amsl.com (Postfix) with ESMTP id 0561112B02D; Thu, 9 Jun 2016 03:42:00 -0700 (PDT)
Received: from [IPv6:2001:67c:10ec:52c7:8000::41b] (unknown [IPv6:2001:67c:10ec:52c7:8000::41b]) by trammell.ch (Postfix) with ESMTPSA id C073C1A0302; Thu, 9 Jun 2016 12:41:29 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_086C2124-3961-4AF3-932A-081514904FF6"; protocol="application/pgp-signature"; micalg="pgp-sha512"
X-Pgp-Agent: GPGMail 2.6b2
From: Brian Trammell <ietf@trammell.ch>
In-Reply-To: <F35E8147-A501-45D9-945C-FBD4762950A6@netflix.com>
Date: Thu, 09 Jun 2016 12:41:29 +0200
Message-Id: <3A0781FE-D2F2-4AD8-8F4D-4AC3A8D4D177@trammell.ch>
References: <28754BEC-F7A0-459D-9C28-2041F23A55E6@lurchi.franken.de> <CAGD1bZYbmD8if4EjMcKdhPhTCauuCi5FSMQz8T5jZn+7dK_F0g@mail.gmail.com> <9035E19F-FDE2-43FF-BC3C-6A1DD14EC3DF@lurchi.franken.de> <CAGHOz8uyLsRdKiHrSBaJJhnUOyw0auxa4ravFH3cuCvKhNi0xg@mail.gmail.com> <565B4FDF-1F17-4DCB-990F-FFBBEA5A84EC@lurchi.franken.de> <2D9EFFDB-E91D-433F-BFAB-13CD40CDCA2D@netflix.com> <C32A6608-41D1-4CCC-8BD0-B2062D660D53@lurchi.franken.de> <8EA7891D-3557-4EDB-9985-0C22F20B8E6B@netflix.com> <CAGD1bZZC1Pk4nFm5UHLvqLqFxE_2r90ZiHYzWGa836Rca-5DCA@mail.gmail.com> <9C80DE7A-67A5-4DB6-B1D5-B3C5087703D6@netflix.com> <CAGD1bZawCECVsa3RZ_StnN0kUdnZtPWU6mMnn_EOmit0eB2OMg@mail.gmail.com> <655C07320163294895BBADA28372AF5D488BD814@FR712WXCHMBA15.zeu.alcatel-lucent.com> <CAGD1bZaq+AB=fXWabWNJS7=2fihC3FwmtDpEjMfMekLp440o-w@mail.gmail.com> <655C07320163294895BBADA28372AF5D488C9873@FR712WXCHMBA15.zeu.alcatel-lucent.com> <99939A2C-286D-44BE-B865-0DA83E440D30@lurchi.franken.de> <F35E8147-A501-45D9-945C-FBD4762950A6@net flix.com>
To: Randall Stewart <rrs@netflix.com>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/spud/LFF36VqU9akVWFqD6dRbrv_qvks>
Cc: Michael Tüxen <Michael.Tuexen@lurchi.franken.de>, "Scharf, Michael (Nokia - DE)" <michael.scharf@nokia.com>, spud <spud@ietf.org>, "quic@ietf.org" <quic@ietf.org>, Jana Iyengar <jri@google.com>
Subject: [Spud] Segment offload for UDP-based protocols Re: [QUIC] Requirements
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>, <mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>, <mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Jun 2016 10:42:04 -0000

hi Randall,

> On 09 Jun 2016, at 12:30, Randall Stewart <rrs@netflix.com> wrote:
> 
> 
>> On Jun 9, 2016, at 5:06 AM, Michael Tuexen <Michael.Tuexen@lurchi.franken.de> wrote:
>> 
>> 
>>> On 09 Jun 2016, at 10:03, Scharf, Michael (Nokia - DE) <michael.scharf@nokia.com> wrote:
>>> 
>>> My concern is that the current charter suggestion markets the protocol by “minimizing (…) overall transport latency for applications”. IMHO this can have rebound effects.
>>> 
>>> Here is what I mean by wrong expectations: Whether a protocol is indeed fast or not depends on many parameters including aspects such as hardware acceleration/offload (which matters at 10G/40G line speed, to the best of my knowledge). Some of these effects of
>> I think this refers to high throughput. For TCP, offloading TCP processing to a NIC improves performance
>> of the TCP processing. I'm not sure if this still helps if encryption/decryption comes into the game.
> 
> I too was thinking Michael meant offloading such as TSO and LRO. I know on most of the caches
> I develop on if I turn off TSO and LRO performance of the box drops by roughly 50%… and I think
> this will be a consequence of encrypting everything since I don’t think you can do TSO/LRO unless
> the hardware/lower-layers has access to things equivalent to TCP sequence numbers and ACK values,
> which is what I believe the encryption is meant to hide (from middle boxes).
> 
> That will be an extreme price to pay the question is, is it worth it /and or/ is there some other way
> to get the benefits of the TSO/LRO even with encryption… :-)

(adding spud@ietf.org, as this is a relevant question for PLUS, too):

The question is what is the minimum information xSO/LRO needs to work. If I understand how generic segment offload works, if QUIC(/PLUS) exposes:

(1) a header field that can be used to order packets and find gaps that the kernel can find and interpret,

(2) a defined and easily-found boundary between header and payload, such that the payload retains any framing/message boundaries needed to meet API contracts, and

(3) rules about which header to choose for the "big" segment on receive

then adding QUIC(/PLUS) aware SO/LRO to the kernel should be reasonably simple.  I don't see why you need ACK-equivalents to be exposed to make this work, but I might be missing something.

Hardware offload takes longer to deploy, obviously, but runs on equivalent information.

Cheers,

Brian