[Fecframe] Managing losses between the sending application and the FECFRAME instance

Vincent Roca <vincent.roca@inrialpes.fr> Fri, 11 February 2011 10:13 UTC

Return-Path: <vincent.roca@inrialpes.fr>
X-Original-To: fecframe@core3.amsl.com
Delivered-To: fecframe@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 6F19F3A6AE4 for <fecframe@core3.amsl.com>; Fri, 11 Feb 2011 02:13:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.249
X-Spam-Level:
X-Spam-Status: No, score=-10.249 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CH3QAZUnFJ74 for <fecframe@core3.amsl.com>; Fri, 11 Feb 2011 02:13:25 -0800 (PST)
Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by core3.amsl.com (Postfix) with ESMTP id 5DD373A6960 for <fecframe@ietf.org>; Fri, 11 Feb 2011 02:13:25 -0800 (PST)
X-IronPort-AV: E=Sophos;i="4.60,454,1291590000"; d="scan'208";a="99707601"
Received: from ral022r.vpn.inria.fr ([128.93.178.22]) by mail1-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-CAMELLIA256-SHA; 11 Feb 2011 11:13:39 +0100
Message-ID: <4D550BC7.8090701@inrialpes.fr>
Date: Fri, 11 Feb 2011 11:13:27 +0100
From: Vincent Roca <vincent.roca@inrialpes.fr>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7
MIME-Version: 1.0
To: "fecframe@ietf.org" <fecframe@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: [Fecframe] Managing losses between the sending application and the FECFRAME instance
X-BeenThere: fecframe@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discussion of FEC Framework <fecframe.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/fecframe>, <mailto:fecframe-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/fecframe>
List-Post: <mailto:fecframe@ietf.org>
List-Help: <mailto:fecframe-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/fecframe>, <mailto:fecframe-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Feb 2011 10:13:26 -0000

And this is point 2:

Managing losses between the sending application and
the FECFRAME instance
---------------------------------------------

It is often implicitly assumed in FEC Schemes that there
is no loss between the sending application and the
FECFRAME Instance that performs FEC encoding. That's
reasonable (we apply FECFRAME on lossy channels)
but we should not design solutions that break if ever
this happens, no matter the reason.

(NB: this may be caused by having FECFRAME on a
middlebox whereas the application flow is generated
on a remote server. Or perhaps because of strange
(bad?) FECFRAME implementations that may loose
ADUs, e.g. in case the machine is frozen during a few
seconds, or for any other reason, bugs included.)

All FEC Schemes that make use of an Explicit Source
FEC Payload ID (be it Generic or not ;-)) are safe, since
they define their own sequential numbering space.

However this is not the case for FEC Schemes that reuse
(for instance) the RTP sequence number. In that case, an
erasure between the application (therefore RTP) and
the FECFRAME Instance creates a gap in the RTP sequence
number space that needs to be signaled somehow to the
receiver.

The simplest way of addressing this situation consists in
saying that source block creation needs to consider this
possibility and start a new block if ever this happens.
Since all the existing FEC Repair Payload IDs for FEC
schemes that rely on RTP sequence numbers, signal to
the receiver in the FEC Repair Payload ID:
  - the base RTP SN of the block and
  - the source block length,
that's sufficient.

A consequence is that the block size can vary if there
are erasures on this path, and this phenomenon is not
under control. As an extreme case:

...<pkt SN=6> LOST <pkt SN=8> LOST <pkt SN=10>...
-------------------------------------------> time

There's a block that is composed of a single packet
(SN=8). That's bad but the FEC Scheme does not break.
And of course this situation is the sign that something
should be re-considered in the design.

So this is an easy fix to the problem, that does not
require major changes to current I-D.

This discussion is already included in our new O&M
proposal, section 10.2, "Within End-Systems vs. within
Middleboxes".

Opinions?

Cheers,

    Vincent and Ali