Re: [tsvwg] design assumptions - draft-ietf-udp-options - trying to see the bigger picture

<mohamed.boucadair@orange.com> Thu, 18 July 2019 15:00 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 341DC120780 for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 08:00:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 a565eijA3wAC for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 08:00:20 -0700 (PDT)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.70.35]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 099B912076E for <tsvwg@ietf.org>; Thu, 18 Jul 2019 08:00:20 -0700 (PDT)
Received: from opfednr02.francetelecom.fr (unknown [xx.xx.xx.66]) by opfednr25.francetelecom.fr (ESMTP service) with ESMTP id 45qHPG3p53zCrK7; Thu, 18 Jul 2019 17:00:18 +0200 (CEST)
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.67]) by opfednr02.francetelecom.fr (ESMTP service) with ESMTP id 45qHPG38DSz8sYd; Thu, 18 Jul 2019 17:00:18 +0200 (CEST)
Received: from OPEXCAUBMA2.corporate.adroot.infra.ftgroup ([fe80::e878:bd0:c89e:5b42]) by OPEXCAUBM43.corporate.adroot.infra.ftgroup ([::1]) with mapi id 14.03.0439.000; Thu, 18 Jul 2019 17:00:18 +0200
From: mohamed.boucadair@orange.com
To: "gorry@erg.abdn.ac.uk" <gorry@erg.abdn.ac.uk>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Thread-Topic: [tsvwg] design assumptions - draft-ietf-udp-options - trying to see the bigger picture
Thread-Index: AQHVPVUIEY4uh/KMVk6xqnmp05ck/qbQc56g
Date: Thu, 18 Jul 2019 15:00:17 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B93302FA82826@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <CACL_3VGs7j+y5vFNT3OL9OKX8ue4rv-Cxi467KR-vbhnMdx86g@mail.gmail.com> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <CACL_3VGrF5UnbVsSzZZoy1i57WKiQKBX 2T3a16UyEVHY=Kr3XA@mail.gmail.com> <0ce46e21249f0dc55310b192d382f50a@strayalpha.com> <CALx6S36gaMqNRo_hYKr45T_vTkUB-vRrYRYJz2_KgvejNsJtLQ@mail.gmail.com> <efbf65646a0e0d2535dc5726b34f3472@strayalpha.com> <CALx6S37sZxmGQJq5mxDiF88NeUjj2HMRnQG5KyZA_4ujrLJkqg@mail.gmail.com> <079d7d849d0e6260497a6c0ed37595a2@strayalpha.com> <CALx6S37wOkz0436CmevOjSe=VwAxKstSR9Jc66PUmXwUKK4vBw@mail.gmail.com> <075C3166-DF88-4160-8E6C-1C32511F4D46@strayalpha.com> <811C4C35-48D8-4382-A4B4-784FAC1B9F1D@strayalpha.com> <787AE7BB302AE849A7480A190F8B93302F797897@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <198F5F25-7ECE-431C-A7F2-F0CCFC0BDAA9@strayalpha.com> <787AE7BB302AE849A7480A190F8B93302FA63BED@OPEXCNORMAE.corporate.adroot.infra.ftgroup> <5D304C35.5020004@erg.abdn.ac.uk>
In-Reply-To: <5D304C35.5020004@erg.abdn.ac.uk>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.247]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/zUIO6rSLysV4OJu7xpkzUCpzWcs>
Subject: Re: [tsvwg] design assumptions - draft-ietf-udp-options - trying to see the bigger picture
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 15:00:24 -0000

Re-, 

I think we are in agreement about the splitting of the core functionalities vs. others. 

I have a question about this:

> For DPLPMTU (#6) the complexity is in another spec (which seems correct
> to me).

I guess you are referring to what is used to be Section 6.2 of DPLPMTU (-07), but that section was removed from your draft for some reason. 

I fail to find the same level of details/discussion in the current udp-options I-D. For example, how nonce (token in DPLPMTU) is defined, used, etc. 

Worse, udp-options I-D states:

==
Their use is described as part of the
   UDP variant of packetization layer path MTU discovery (PLPMTUD)
   [Fa19].
==

But DPLPMTU I-D says the following: 

==
   Support for using DPLPMTUD with UDP-Options is defined in the UDP-
   Options specification [I-D.ietf-tsvwg-udp-options].
==

Cheers,
Med

> -----Message d'origine-----
> De : tsvwg [mailto:tsvwg-bounces@ietf.org] De la part de Gorry Fairhurst
> Envoyé : jeudi 18 juillet 2019 12:39
> À : tsvwg@ietf.org
> Cc : gorry Fairhurst
> Objet : Re: [tsvwg] design assumptions - draft-ietf-udp-options - trying
> to see the bigger picture
> 
> I'm trying to understand LITE and the related topics more...
> 
> (1) One use-case is to mimic UDP-Lite for layer2 networks that wish to
> do cross-layer optimisation. The AMR codec would be an example. Such
> networks *NEED* to know
> the transport requires them to do partial integrity checks at L2 (if the
> CRC the entire frame
> this approach is useless). To get any real advantage, I'd say they have
> to do much more, by
> probably changing the waveform (FEC, modulation, etc). UDP-Lite offers
> that, and I have
> not seen people wanting more/different features - Magnus provided
> comments recently,
> and I would concur this requires strong coordination with the App and
> Link design, UDP-Lite remains a suitable method, I would agree that
> adding this to another protocol is not helpful.
> 
> (2) A second use-case is to support router/network device encapsulation
> (i.e. tunnels)
> where the network device has no visibility deep into the payload. Such
> devices existed
> and continue to exist. This was a motivation in GRE/UDP. However, for
> IPv6 a zero UDP checksum is restricted to specific uses-cases, and not a
> host function
> - because as Lloyd pointed out this erodes ability to detect rogue UDP
> datagrams.
> 
> (3) A third use-case is when the packet contains another checksum (also
> the case
> for some tunnels), and we could save the cost of a second checksum.  I
> am not
> persauded that this is a real cost when comes to a frag/reassembly
> algorithm.
> 
> (4) Some other future use, as yet unknown?
> 
> 
> The more I think about LITE the less I really am persauded (1) is needed.
> 
> I think (2) could be useful, but I don't yet see someone asking for
> that, and I'd expect hosts to see the entire payload, so at least a host
> implementation does not seem to need that.
> 
> I'm hessitant to agree that the complexity of LITE is worth the
> perceived cost saving
> and there may be other ways that don't need this:
> (*) Hardware  off-load of the checksum (e.g. Tom Herbert commened) means
> the cost can
> be minimal.
> (*) For a method designed just for reassembly, it is also possible to
> "checksum" the fragment checksums in a fragementation protocol to provide
> equivalent one-pass checksum.
> 
> 
> On the OCS topics:
> 
> * DNSSEC or any host could send UDP fragments, would it really cost too
> much
> to send these with a full UDP checksum for IPv6? (and then why not IPv4)?
> 
> * I have heard both sides on "middlebox checksum/payload length bug
> traversal"
> (#7) which requires a CCO-like sum. I really appreciated the thread,
> which I paraphrase as something like (do I understand):
> 
> -- Sender SHOULD add an OCS when the UDP Datagram (Frag) Checksum is
> non-zero - recomended for traversal (and basic integrity protection).
> -- Sender MUST check ACS or AE when present and before it process other
> UDP Options, does not then need to check the OCS on reception.
> -- Sender MUST check one of the  OCS when the UDP Checksum is non-zero
> when present and no ACS, and before it processes other UDP Options. A
> 16b CRC isn't that strong for a full-sized IP packet (but better than
> the Internet checksum), but a CRC32 would be.
> 
> -- Sender SHOULD add an OCS when the UDP Checksum is zero - to aide
> traversal.
> -- Sender SHOULD allow a LITE option to be processed when the OCS is
> invalid - although that IMHO needs though as to how you decide on the
> validity of the packet.
> 
> And so back to Frag:
> 
> I'm concerned that DPLPMTU, Frag and Lite have much more complexity in
> their design than other parts of the spec - and more consideration is
> needed on their use.
> 
> For DPLPMTU (#6) the complexity is in another spec (which seems correct
> to me). I'd be interested whether a separate spec of Frag is also one
> way to ensure we get experience with the core spec, and then consider
> how to design Frag (#5, #8).
> 
> Gorry
> 
> 
> 
> On 18/07/2019, 09:47, mohamed.boucadair@orange.com wrote:
> > Hi Joe,
> >
> > Your reply confirms my initial thinking.
> >
> > 5#, 6#, and #8 are targeting a particular case and should not be
> considered as such as part of the core design requirements for UDP
> options.
> >
> > BTWs, I don’t understand well what is specific to DNSSEC fragments here
> to traverse NATs. Such NATs will fail to handle any incoming fragment, not
> only DNS. NATs which are compliant with REQ#14 of RFC4787 will handle
> appropriately fragments (modulo DDoS protection features).
> >
> > If a firewall/NAT is explicitly configured to reject such fragments for
> whatever reason, these devices are likely to strip/reject the FRAG options
> (or UDP options in general).
> >
> > We need to set first the foundations, and then build on it for
> particular usages.
> >
> > Cheers,
> > Med
> >
> >> -----Message d'origine-----
> >> De : Joe Touch [mailto:touch@strayalpha.com]
> >> Envoyé : mercredi 17 juillet 2019 17:02
> >> À : BOUCADAIR Mohamed TGI/OLN
> >> Cc : tsvwg
> >> Objet : Re: [tsvwg] design assumptions - draft-ietf-udp-options
> >>
> >> FWIW, #5 Frag is a driving case for DNSSEC to allow UDP messages larger
> >> than the min MTU to traverse NATs. IP
> >>
> >> And it should never interact with IP fragmentation any more than TCP
> >> segmentation does.
> >>
> >> #6 is required to enable #5.
> >>
> >> And thus far, #8 is required to support #5 in a way that satisfies #2.
> >>
> >> I.e., the ones I listed can’t be teased out the way you’re suggesting.
> >>
> >> Joe
> >>
> >>> On Jul 17, 2019, at 7:46 AM,<mohamed.boucadair@orange.com>
> >> <mohamed.boucadair@orange.com>  wrote:
> >>> Hi Joe,
> >>>
> >>> IMO, the core requirements are #1, #2, #3, #4, and #7.
> >>>
> >>> #7 should be mandatory feature.
> >>>
> >>> 5#, 6#, and #8 are nice-to-have. I would even prefer if those are
> >> covered in a separate specification. For example, I'm not sure whether
> >> FRAG will be useful and how it can interacts with IP fragmentation.
> >>> Cheers,
> >>> Med
> >>>
> >>>> -----Message d'origine-----
> >>>> De : tsvwg [mailto:tsvwg-bounces@ietf.org] De la part de Joe Touch
> >>>> Envoyé : mercredi 17 juillet 2019 02:31
> >>>> À : tsvwg
> >>>> Objet : [tsvwg] design assumptions - draft-ietf-udp-options
> >>>>
> >>>> Getting back to the core design assumptions:
> >>>>
> >>>> 1- support options
> >>>> 2- allow at least some options to be silently ignored by legacy
> >> receivers
> >>>> (to enable ‘“optionally enhanced” exchanges)
> >>>> 3- allow at least some options to be required
> >>>> 4- allow the options themselves to be protected
> >>>> 5- support for fragmentation/reassembly
> >>>> 6- support for MTU discovery
> >>>> 7- support (optional?) middlebox checksum/payload length bug
> traversal
> >>>> 8- support LITE, i.e., where some of the payload is not covered by at
> >>>> least some checksum processing
> >>>>
> >>>> AFAICT:
> >>>>
> >>>> #7 requires a CCO-like sum, but it MUST he calculated AFTER all other
> >>>> options are populated (it depends on the value of ALL other options
> and
> >>>> surplus data)
> >>>>
> >>>> #8 can depend on everything except CCO (it doesn’t need to protect
> >> CCO),
> >>>> but it depends on the value of all other options and needs to be
> >> computed
> >>>> next-to-last (or last if CCO isn’t present)
> >>>>
> >>>> And we need a way to know:
> >>>> 	- for #7, whether CCO is included or not used (at user’s peril, but
> >>>> to allow for transmitters to avoid work)
> >>>> 	- for #8, when to end the options (either a length field OR a EOL
> >>>> flag)
> >>>>
> >>>> Are there any other design requirements?
> >>>>
> >>>> Joe
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>