Subject: [Rmt] [Technical Errata Reported] RFC6726 (3870)

From: RFC Errata System <[email-masked]>
Date: Wed, 22 Jan 2014 22:55:25 -0800 (PST)

The following errata report has been submitted for RFC6726,
"FLUTE - File Delivery over Unidirectional Transport".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6726&eid=3870

--------------------------------------
Type: Technical
Reported by: Thomas Stockhammer <[email-masked]>

Section: 11.1

Original Text
-------------
Incremented the FLUTE protocol version from 1 to 2, due to concerns
   about backwards compatibility.  For instance, the LCT header changed
   between RFC 3451 and [RFC5651].  In RFC 3451, the T and R fields of
   the LCT header indicate the presence of Sender Current Time and
   Expected Residual Time, respectively.  In [RFC5651], these fields
   MUST be set to zero and MUST be ignored by receivers (instead, the
   EXT_TIME Header Extensions can convey this information if needed).
   Thus, [RFC5651] is not backwards compatible with RFC 3451, even
   though both use LCT version 1.  FLUTE version 1 as specified in
   [RFC3926] MUST use RFC 3451.  FLUTE version 2 as specified in this
   document MUST use [RFC5651].  Therefore, an implementation that
   relies on [RFC3926] and RFC 3451 will not be backwards compatible
   with FLUTE as specified in this document.

Corrected Text
--------------
Incremented the FLUTE protocol version from 1 to 2, due to concerns
   about backwards compatibility.  For instance, the LCT header changed
   between RFC 3451 and [RFC5651].  In RFC 3451, the T and R fields of
   the LCT header indicate the presence of Sender Current Time and
   Expected Residual Time, respectively.  In [RFC5651], these fields
   MUST be set to zero and MUST be ignored by receivers (instead, the
   EXT_TIME Header Extensions can convey this information if needed).
   Thus, [RFC5651] is not backwards compatible with RFC 3451, even
   though both use LCT version 1.  FLUTE version 1 as specified in
   [RFC3926] SHOULD use RFC 3451.  FLUTE version 2 as specified in this
   document MUST use [RFC5651].  Therefore, an implementation that
   relies on [RFC3926] and RFC 3451 will not be backwards compatible
   with FLUTE as specified in this document.

Notes
-----
The only change that is requested is to change "FLUTE version 1 as specified in
   [RFC3926] MUST use RFC 3451." to "FLUTE version 1 as specified in
   [RFC3926] SHOULD use RFC 3451. " 

This is done as there are deployments that want to use the new functionalities of LCT as defined in RFC5651, but still want to be backward compatible to FLUTE version 1. The above statement being a must prevents this. However, if there are good reasons to not move to FLUTE version 2 (as this would break backward-compatibility for existing receivers), it should be possible to use FLUTE version 1 on top of LCT RFC5651 in order to use the functionalities in RFC5651, especially the header extensions.

Instructions:
-------------
This errata is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6726 (draft-ietf-rmt-flute-revised-16)
--------------------------------------
Title               : FLUTE - File Delivery over Unidirectional Transport
Publication Date    : November 2012
Author(s)           : T. Paila, R. Walsh, M. Luby, V. Roca, R. Lehtonen
Category            : PROPOSED STANDARD
Source              : Reliable Multicast Transport
Area                : Transport
Stream              : IETF
Verifying Party     : IESG

---

From: Rod Walsh <[email-masked]>
Date: Thu, 23 Jan 2014 10:02:31 +0000

I'm a bit rusty so jump on me if I write anything stupid:

We wrote FLUTE 2 specifically to maintain maximal backwards compatibility with FLUTE 1 (given the compatibility breakage for LCT, we were prevented from keeping fully compatibility as was the original philosophy). So a FLUTE 2 receiver would be happy with a FLUTE 1 FDT. Meaning that a well made "mutant FLUTE sender" could do what is asked by this errata, even if we specifically don't want the standard to suggest that a FLUTE 2 sender does things the FLUTE 1 way. Thank goodness, we made a careful section "11.  Change Log"! - it pretty much says it all about the changes.

However, what is being asked for is a little broken. RFC 6726 does not promote or suggest the use of FLUTE 1 senders. If you want to use FLUTE 1 senders, you use the experimental and obsolete RFC3926. So if you want to experimentally use the newer updated LCT and ACL with the experimental RFC3926, that's fine - it's experimental but it would not be according to either RFC spec.

If you want a full FLUTE 1 spec added to the FLUTE 2 spec as an option, it kind of goes outside the normal "keep this and the options minimal and simple or you'll not get interoperable interpretations implemented" IETF mantra (and that is a BIG ask). If you want the obsolete RFC3926 to be updated to a new experimental RFC to allow for this, you'd want the normal IETF tao - running code and rough consensus (although running consensus and rough code is an easier start), and a new ID for this small spec modifier (probably to become an informational RFC rather than obsolete experimental or standards track RFC).

So my quick assessment, is that the errata author has not understood what we have tried to accomplish, and wishes to use the specifications in a non-standards way (which is fine for a closed and controlled network but) which we would not want to incorporate into RFC 6726.

If there is a massive groundswell, that I'm not aware of, of implementors specifically wanting to run FLUTE 1 over LCT/ALC 2, it should be straight forward to get the wheels in motion for a new ID/RFC path (which would be remarkably easy to write - mostly copy and paste). Vincent Roca already set a precedent for this with RFC6968 (FCAST) which deviates from FLUTE considerably. This really depends on the volume, motivation and skills of the developers of "deployments that want to use the new functionalities of LCT as defined in RFC5651, but still want to be backward compatible to FLUTE version 1".

Cheers, Rod.