Re: [Taps] draft-fairhurst-taps-transports-usage-udp-01

gorry@erg.abdn.ac.uk Mon, 04 April 2016 22:31 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BFB912D85F for <taps@ietfa.amsl.com>; Mon, 4 Apr 2016 15:31:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level:
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 58_42WbFj3Xu for <taps@ietfa.amsl.com>; Mon, 4 Apr 2016 15:31:29 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [139.133.204.173]) by ietfa.amsl.com (Postfix) with ESMTP id 6E6A912D646 for <taps@ietf.org>; Mon, 4 Apr 2016 15:31:29 -0700 (PDT)
Received: from erg.abdn.ac.uk (galactica.erg.abdn.ac.uk [139.133.210.32]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPA id 2F0DE1B001A7; Mon, 4 Apr 2016 23:43:34 +0100 (BST)
Received: from 190.111.246.165 (SquirrelMail authenticated user gorry) by erg.abdn.ac.uk with HTTP; Mon, 4 Apr 2016 23:31:28 +0100
Message-ID: <dd0c910bafd6e61fd33cc3f909eaa437.squirrel@erg.abdn.ac.uk>
In-Reply-To: <5702CD91.9070101@isi.edu>
References: <CAD62q9XZ7qSVghN+LzDcQZXttQRZ+aqJ9h5F-xZQLipCs6RQMg@mail.gmail.com> <CAKKJt-fNgbnKZsUEsWmxKrnOqbYU1KU=QQ=R9ojxxiECtR5vsw@mail.gmail.com> <CAD62q9Xe1r9NeFdmpjkPjfoC+eB+rmhxex1M1OpmhsNtEoQX3w@mail.gmail.com> <CAKKJt-f3CiDz0-YBa-TBTV9h4srr3rdo+E2CSuxXQE5OAGUzjw@mail.gmail.com> <CAD62q9WXntMMHAk7oFQ_ua7joEZAB84WdZZoNF37d0SVnrHRmg@mail.gmail.com> <5EEA6A8D-7EFA-4946-AB1A-EF876BC97332@ifi.uio.no> <de01e8d4027bcbaa94101be763d10386.squirrel@erg.abdn.ac.uk> <5702A813.90908@isi.edu> <7235c7e80b8eaf8823e244fb762a5801.squirrel@erg.abdn.ac.uk> <5702AD1F.6080303@isi.edu> <7daecb443d1b93875027c4d945c594df.squirrel@erg.abdn.ac.uk> <5702B2C8.5030005@isi.edu> <78b2e990fa6a83f886c59dd56c178b9e.squirrel@erg.abdn.ac.uk> <5702CD91.9070101@isi.edu>
Date: Mon, 04 Apr 2016 23:31:28 +0100
From: gorry@erg.abdn.ac.uk
To: Joe Touch <touch@isi.edu>
User-Agent: SquirrelMail/1.4.23 [SVN]
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Archived-At: <http://mailarchive.ietf.org/arch/msg/taps/n6X5GaGaO0_GjBcaPwvo2szmdDI>
Cc: gorry@erg.abdn.ac.uk, Aaron Falk <aaron.falk@gmail.com>, Michael Welzl <michawe@ifi.uio.no>, touch@isi.edu, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, "taps@ietf.org" <taps@ietf.org>
Subject: Re: [Taps] draft-fairhurst-taps-transports-usage-udp-01
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Discussions on Transport Services <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Apr 2016 22:31:40 -0000

>
>
> On 4/4/2016 12:49 PM, gorry@erg.abdn.ac.uk wrote:
> ...
>>>> No. It's true that UDP needs to know this, but this info needs to
>>>> arrive
>>>> at the App, either from a primitive that returns the size or from a
>>>> failed
>>>> send call when probing for a maximum datagram size. The app also may
>>>> need
>>>> to control DF if it wants to do path probing of PMTU, whereas in TCP
>>>> this
>>>> is handed within the transport protocol..
>>>
>>> Ahh - I see this now. However, IMO, that ought to be something it gets
>>> from the IP layer, not from UDP. UDP has an MSS that's defined by the
>>> protocol itself which is not all that useful to indicate to the app.
>>>
>> I see what you are saying for reading the MTU less headers, but whatever
>> the method, the APP needs to work out what to do with this. For setting
>> DF
>> this is not necessarily an IP setting for all packets, it can be a per
>> UDP
>> datagram choice.
>
> Sure, but again that argues for a transparent supplement to the UDP API,
> not for a UDP-specific API.
>
>>>>> For ECN, UDP ought to be ignorant - as should its API. The only
>>>>> question
>>>>> is whether the UDP API should have a "pass through" for signals from
>>>>> lower layers, whether IP, Ethernet, etc. IMO, those aren't part of
>>>>> the
>>>>> UDP API; they're part of the OS endpoint API to these other
>>>>> protocols.
>>>>>
>>>> I don't understand what you are saying about an "OS endpoint API to
>>>> IP".
>>>> To me the API has to signal per-datagram on send whether ECT(0) or
>>>> ECT(1)
>>>> or neither is to be set, the receive API needs to see the received ECN
>>>> field for each datagram.
>>>>
>>>> Do you see a different way to do this?
>>>
>>> Here's the issue - when a message arrives, right now we think of it
>>> being "from UDP" as part of the UDP API. However, there are no ECN
>>> markings in UDP. It makes sense to forward the IP source/dest in the
>>> UDP
>>> API because that part of the IP header is defined as part of UDP (as
>>> the
>>> pseudoheader). However, it makes no sense to have that information
>>> available as part of what UDP passes to the app per se.
>>>
>>> So maybe each UDP message is allowed to forward a single opaque (to
>>> UDP)
>>> structure that contains information from any of its underlying layers
>>> (i.e., a pass-through signal mechanism). But I would consider that not
>>> really integral to the API of UDP.
>>>
>>> I do agree this needs to be per message, not per endpoint.
>>>
>> That sounds a lot like you are thinking about a concrete API.
>
> Way more abstract. The issue is that these features are not inherent in
> UDP - they are inherent in the IP over which UDP runs (and depend on
> that IP version).
>
>> And I agree,
>> to implement this, you can do exactly that and provide additional data
>> per
>> datagram buffer to communicate the DSCP, ECN, TTL ...
>
> My point is that - at the abstract level - UDP should not have an API
> that talks about DSCP, ECN, or TTL - that ought to be something opaque
> that UDP hands down underneath.
>
And does this particular list of things vary between IPv4 or IPv6? - I
suggest not really, apart from different naming of the TTL to HOP_COUNT?

> We shouldn't need to update the UDP API whenever IP or other layers
> change.
>
That's a good goal.

> Joe
>
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps
>
Gorry