Subject: Re: [Rmt] draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call

From: "Mark Watson" <[email-masked]>
Date: Fri, 7 Oct 2005 13:42:31 +0000 GMT

Hi Ramakrishna,

I'm reluctant to add significant amounts of new material at this stage since the draft has been stable for some time now. Several people have implemented the code from this specification, so I don't think there is any question that it is not clear enough to be easily implementable. Also, as a general rule, tutorial material should be kept separate from specifications, so perhaps if there is a need for such material it should be somewhere else?

But if there are particular points that you are not as clear as they should be, or deserve additional explanation, then perhaps we could add some small notes to clarify?

A new version addressing the last call comments will be available next week.

Regards,

Mark

Sent from my BlackBerry.

-----Original Message-----
From: <[email-masked]>
Date: Thu, 6 Oct 2005 19:56:46 
To:<[email-masked]>
Subject: RE: [Rmt] draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call

Dear authors and all,
 
 >>The specification is intended to rigorously specify the code and you
 >>are right that it does not provide a lot of explanation of why it is the
 >>way it is.
 The current draft is in decent shape. However, it would be good to include more explanation of "why it is the way it is".
 Of course the references provide detailed description of the FEC scheme, but having a simple description in the RFC itself would be good.
 The current draft gives just enough details for the implementers. A simple explanation of the design principles of this FEC scheme (with some block diagrams, matrix equations etc) would make this RFC a great piece of work.
 This RFC is going to describe the first fully specified "real" FEC scheme (though FEC Encoding ID = 0 was fully specified it is still a "dummy" FEC).
 It would be nice to set a good precedent in this RFC that future RFCs describing fully specified FEC schemes can follow.
 We are interested in this work and support this work.
 We would like to know if and when a new version of the current draft (that addresses the comments/concerns expressed so far over the reflector) will be available.
 
 Best Regards,
 Ramakrishna Vedantham
 Nokia Research Center
 
 ----------------------------------------------------------------------
 Nokia                           | Phone +1-972-374-1922
 6000 Connection Dr,           | Fax   +1-972-894-5937
 Irving, TX 75039, USA           | mailto:[email-masked]: <mailto:[email-masked]> 
 www.nokia.com/openness
 ----------------------------------------------------------------------

 -----Original Message-----
 From: [email-masked] [mailto:[email-masked]: <mailto:[email-masked]> ]On Behalf Of ext
 Mark Watson
 Sent: Wednesday, September 28, 2005 3:59 PM
 To: Vincent Roca; Lorenzo Vicisano; [email-masked]
 Subject: RE: [Rmt] draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call

 Vincent & Christophe,
 
 Please see comments below, marked MW:
 
 Regards,
 
 Mark
 
 -----Original Message-----
 From: [email-masked] [mailto:[email-masked]: <mailto:[email-masked]> ] On Behalf Of
 Vincent Roca
 Sent: Wednesday, September 28, 2005 5:32 PM
 To: Lorenzo Vicisano; [email-masked]
 Subject: Re: [Rmt] draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call
 
 Dear authors and al.
 
 Please find below a few comments for
 draft-ietf-rmt-bb-fec-raptor-object-02.txt
 
    Vincent and Christoph

 -------------------
 
 This Raptor scheme requires that block size be less or equal to
 Kmax=8192
 source symbols. This is relatively small, which is confirmed by  RFC3453
 that says, section 2.4:
    Like Tornado codes, the number of source symbols k may be very
    large for LT codes, i.e., on the order of tens to hundreds of
    thousands [...]
 Hence the question:
 
 *** comment 1: is this a fundamental limitation or only a practical
     one? For instance, I see that section 5.8 provides an exhaustive
 list
     of possible values for K between 4 and 8192, so I can understand
 that
     providing a larger table would quickly become tedious. Is that one
     of the reasons for this limitation?
 
 MW: Yes, this is one of the reasons - as well as storing the table in
 implementations. Another is that having this limitation means that we
 can also limit to 65536 symbols in total (source and repair) and this
 keeps the FEC Payload ID small (the FEC Payload ID being an overhead in
 every packet) and assists with optimised implementation. If Kmax were
 larger then the limit of 65536 symbols in total becomes problematic,
 since it places a lower bound on the rates supported.
 
 Tornado, LT and some other LDPC codes require very large numbers of
 symbols to achieve efficient performance. In practice, it is desirable
 to have the freedom to use larger symbols (for computational reasons),
 so the possibility to work efficiently with smaller number of symbols is
 a plus point, because it means symbols can be larger (up to the packet
 size).
 
 Finally, in practice this limitation means that a very large file may
 have to be split into a small number of separate source blocks. Since
 these blocks are themselves still very large, the effect of the "coupon
 collector problem" is actually very small (the variance in the number of
 lost symbols across a few blocks of >8192 symbols will be very small).
 -------------------
 
 *** comment 2: is Raptor FEC Enc ID 1 generic or not?
 
 More precisely, is the present FEC scheme sufficiently generic to
 be used in many different target environments (e.g. over high speed
 Internet connections) or is it specialized for the 3GPP/DVB-H
 use cases? I think it has been said that the IETF and 3GPP
 specifications
 were aligned, but correct me if I'm wrong. The 8192 limitation for
 Kmax, which might be appropriate in 3GPP/DVB-H use cases (here also
 correct me if I'm wrong), is suboptimal for a general purpose FEC codec
 when dealing with large object, since it opens the door to this good
 old ``coupon collector problem'' that large block/expandable codes
 were supposed to solve. Can you clarify please?
 
 And the corrolary: if ever it is a carefully tailored FEC scheme
 for a specific use case, do you plan to submit another Raptor FEC
 scheme?
 
 MW: Yes, it is intended to be generic. See above for comments on the
 block size limitation. We believe this is the right balance between
 supported block size, the overhead of the FEC Payload ID and the need to
 provide some limitation for implementation practicality (including
 provision of the table of Systematic Indices).
 
 The code is aligned with 3GPP and DVB-H but it is not limited to
 3GPP/DVB-H object sizes and supports objects from kilobytes to
 gigabytes. Note that it's the object size that is relevant, not the
 connection speed - you should not assume that people never want to send
 large objects over slow connections ;-)

 -------------------
 
 *** comment 3: definitions/symbols/abbreviations
 
 Definitions, symbols and abbreviations only appear in section 5.2,
 after they have been heavily used and even re-defined earlier.
 A few pathological examples of bad re-definitions are:
 
 Section 4.1.
       - The transfer length of the object, F, in bytes
 Then in section 4.2., same page:
       - F the object size, in bytes
 Finally, section 5.2.2:
    F    the object size, for object delivery, in bytes
 
 or:
 
 Section 4.1:
       - A symbol alignment parameter (Al)
 Then in section 4.2:
       - Al the symbol alignment factor, in bytes
 Finally, section 5.2.2:
    Al   denotes a symbol alignment parameter.  Symbol and sub-symbol
         sizes are restricted to be multiples of Al.
 
 I see no reason for delaying these definitions, which makes both
 understanding difficult and creates duplicated, non coherent,
 pre-definitions. I suggest to move section 5.2 before section 3.
 
 MW: Only the occurance in the "definitions" section is supposed to be a
 definition. I'd prefer not to re-arrange sections, but I can fix the
 discrepancies in nomenclature.
 -------------------
 
 *** comment 4:
 What is the motivation for including 13 full pages of numbers in
 the main part of the document rather than having them defined in
 an Annex, in section 5.8? The same is true for section 5.7.1.
 
 MW: There is no special reason. They could be in an Annex if people
 prefer (but not an Appendix ;-)
 
 *** comment 5:
 By the way, for my personnal understanding, do the coder and
 decoder need to memorize the 8192 - 4 systematic indices values
 or not? A carreful reading of the document would certainly help
 answering this question, but since the explanations are sometimes
 really scarce (in particular in sections 5.5.4 where there are
 many ``magic formulas''), I cannot easily answer...
 
 MW: Yes, the encoder and decoder must both know these numbers. They
 ensure that the first K symbols of the code are linearly independent and
 thus can be systematic symbols.
 
 The specification is intended to rigourously specify the code and you
 are right that it does not provide a lot of explanation of why it is the
 way it is. I am not sure the formulae are "magic" - they are just the
 way they are because that is what makes the code work!
 
 -------------------
 
 ***__Minor__ remark for figure p7
 
     3         2         1
    10987654321098765432109876543210
    +--------------+-------+-------+
    |      Z       |   N   |   Al  |
    +--------------+-------+-------+
 
 This kind of graphic which shows bit alignment fields requires to
 have some space between the bits, so that the separation between the
 Al, N fields can be shown as taking place between bits 7 and 8,
 rather than exactly at bit 8 (before or after?). In the present case,
 common sense enables to easily answer, but adding "+" between each
 "-" is preferable anyway.
 
 MW: Ok.
 _______________________________________________
 Rmt mailing list
 [email-masked]
 https://www1.ietf.org/mailman/listinfo/rmt: <https://www1.ietf.org/mailman/listinfo/rmt> 
 
 _______________________________________________
 Rmt mailing list
 [email-masked]
 https://www1.ietf.org/mailman/listinfo/rmt: <https://www1.ietf.org/mailman/listinfo/rmt> 
 
 _______________________________________________
 Rmt mailing list
 [email-masked]
 https://www1.ietf.org/mailman/listinfo/rmt: <https://www1.ietf.org/mailman/listinfo/rmt> 

_______________________________________________
Rmt mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rmt

---

From: Vincent Roca <[email-masked]>
Date: Tue, 11 Oct 2005 16:17:58 +0200

Hello Mark and al.

> I'm reluctant to add significant amounts of new material 
> at this stage since the draft has been stable for some time
> now. Several people have implemented the code from this
> specification, so I don't think there is any question that
> t is not clear enough to be easily implementable. Also, as a 
> general rule, tutorial material should be kept separate from 
> specifications, so perhaps if there is a need for such material
> it should be somewhere else?

The funny thing is that the first two versions of the I-D
used to include many more explanations than the latest one,
and understanding the motivations was probably simpler.
Then some tables and explanations progressively disappeared
from newest versions of the Raptor I-D, I don't know why.

http://www.inrialpes.fr/planete/people/roca/doc/draft-luby-rmt-bb-fec-raptor-object-00.txt
http://www.inrialpes.fr/planete/people/roca/doc/draft-ietf-rmt-bb-fec-raptor-object-00.txt

Cheers,

   Vincent

---

From: "Michael Luby" <[email-masked]>
Date: Tue, 11 Oct 2005 08:05:56 -0700

Hello Vincent,
A reply to your comments below (paragraph that starts with ***).
Mike

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of
Vincent Roca
Sent: Tuesday, October 11, 2005 7:18 AM
To: [email-masked]
Cc: Ramakrishna Vedantham; [email-masked]
Subject: Re: [Rmt] draft-ietf-rmt-bb-fec-raptor-object-02 WG Last Call

Hello Mark and al.

*** The two latest versions do contain somewhat less prose than the very
first versions of the I-D, and the reason for this is that much of the
somewhat imprecise and complicated prose was reduced to a few much simpler
and exact specification rules for communicating the information. Thus, the
prose that was removed was replaced with something that for a specification
is preferable, i.e., exact descriptions of what parameters are passed and
how to pass them and the result is actually simpler.  The recommendations
for setting the parameters are still there, and are expanded general
recommendations compared to the original version cited below that were
described in tables, and the expanded versions match precisely the original
version for the cases where the original version were defined.   The
evolution of the draft into a more precise, succinct and simpler
specification occurred due to close scrutiny within the 3GPP SA4 working
group.

http://www.inrialpes.fr/planete/people/roca/doc/draft-luby-rmt-bb-fec-raptor
-object-00.txt
http://www.inrialpes.fr/planete/people/roca/doc/draft-ietf-rmt-bb-fec-raptor
-object-00.txt

Cheers,

   Vincent