Re: [payload] SDP O/A -- L, D, ToP and Flexible mode

Varun Singh <varun@callstats.io> Thu, 21 March 2019 15:45 UTC

Return-Path: <varun@callstats.io>
X-Original-To: payload@ietfa.amsl.com
Delivered-To: payload@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3A8601312FF for <payload@ietfa.amsl.com>; Thu, 21 Mar 2019 08:45:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=callstats.io
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 u7tNKUPazTNW for <payload@ietfa.amsl.com>; Thu, 21 Mar 2019 08:45:41 -0700 (PDT)
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 54660131301 for <payload@ietf.org>; Thu, 21 Mar 2019 08:45:41 -0700 (PDT)
Received: by mail-wr1-x42d.google.com with SMTP id w2so7106941wrt.11 for <payload@ietf.org>; Thu, 21 Mar 2019 08:45:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=callstats.io; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=2PBj2ZYHRQoEnQg2IfNy8XGxh7FWM3lgDarenAWaxLk=; b=APvLtH2O0HwU5IWNfWYxNdp/vrAp09/RSJxYH+iVqK5X9sxVLfdDAaIl47/FXMKSlL FXD7rizEXUJ1MeXEbIz++TknYqZkFIevTomlPFAPgAG0P/kr/doaSHIeNZaCdw5IydiD 5YH13/tY5TkYI8kWxveMcQtmQlxynkhBXjxy8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=2PBj2ZYHRQoEnQg2IfNy8XGxh7FWM3lgDarenAWaxLk=; b=XSV6wWKbne25if9pB2XpN5UTOIrakJl/bMu+ZHbJY+GRuV9eZR5Z71BRyxk9WSf09q 7uHJSFMx6J/VXSG7HkJ8IXZCAzY+wzoMU/cS0tzmYCcEb1qrpqSGMJ+pBAQnSMrsbK51 OEzUGKZt5zPn0OKFMLYgN0Cm9QYRSdINqKTXZBHdajgPEIUYhbBKlma+4G2rAXKjPW/z xAoiHeDtNTude+26RXw2Ff/4sLYO8vsP64qQjfQjQgE76hbpJjipg8kyEAsguSxZVcnE FDw/tpkTFzOyB0aXBoXsfSmXPB4Ss76mbkNKg5rhB2gp68G8wsg5Murhs6SQAS/ZKWW2 W1Xg==
X-Gm-Message-State: APjAAAX5iyPHSQJ3AnjuvWjdmWnz7vkTzl9fKvxc742172Ou+DlPZgTU kvNKjPLWSRjfo+7NltSCuwRYdkDHNoxkHEQ45I0Ztw==
X-Google-Smtp-Source: APXvYqxPNP7SJAhMtTHkeiTfX0J+fgSQIWYwJ+WiZwYhgADFA7aM7UQqmITvjnDJLVT8SeSzGkLViZvLeEh9SK+MmdU=
X-Received: by 2002:a5d:660c:: with SMTP id n12mr2985799wru.160.1553183139214; Thu, 21 Mar 2019 08:45:39 -0700 (PDT)
MIME-Version: 1.0
References: <CACHXSv6vLEER_dPF+AVj+GA5e+A8eZz6ks3Vo3m+L11C1e6bvA@mail.gmail.com> <B3318A07-10DC-455C-9099-899CA1792694@microsoft.com> <CACHXSv6PwGTUFyHMx3t36uCGmdydogV99tFzNojwfQgUsGA4qA@mail.gmail.com> <CACHXSv7euSVd=-W70E4X_mPiYuTU_BxsUoC5PdtF8iiaaXTy1A@mail.gmail.com>
In-Reply-To: <CACHXSv7euSVd=-W70E4X_mPiYuTU_BxsUoC5PdtF8iiaaXTy1A@mail.gmail.com>
From: Varun Singh <varun@callstats.io>
Date: Thu, 21 Mar 2019 17:45:25 +0200
Message-ID: <CACHXSv4afS5hzQSETzMnw=AysqcU2ge5VKraNssYSh1-A8uoEA@mail.gmail.com>
To: Bernard Aboba <Bernard.Aboba@microsoft.com>, "draft-ietf-payload-flexible-fec-scheme.authors@ietf.org" <draft-ietf-payload-flexible-fec-scheme.authors@ietf.org>, "payload@ietf.org" <payload@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/payload/1cBgcPiRphcDPJwALJXTvoyPwm4>
Subject: Re: [payload] SDP O/A -- L, D, ToP and Flexible mode
X-BeenThere: payload@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Payloads working group discussion list <payload.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/payload>, <mailto:payload-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/payload/>
List-Post: <mailto:payload@ietf.org>
List-Help: <mailto:payload-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/payload>, <mailto:payload-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Mar 2019 15:45:46 -0000

Hi folks,

The draft was reviewed and approved by the IESG, however, we have not
incorporated the feedback/comments raised by Bernard. Feedback on this
is appreciated, because it  changes the O/A mechanism of FlexFEC.

Regards,
Varun

On Tue, Mar 5, 2019 at 10:42 PM Varun Singh <varun@callstats.io> wrote:
>
> Hi,
>
> Forwarding my clarifications to Bernard’s review.
> Full email below.
>
> Feedback appreciated.
>
> Regards,
> Varun.
>
> ---------- Forwarded message ---------
> From: Varun Singh <varun@callstats.io>
> Date: Tue, 12 Feb 2019 at 5.40
> Subject: Re: SDP O/A -- L, D, ToP and Flexible mode
> To: Bernard Aboba <Bernard.Aboba@microsoft.com>
>
>
> Hi all,
>
> Thanks Bernard for the quick feedback. See my replies inline.
>
> On Mon, 11 Feb 2019 at 19.13, Bernard Aboba <Bernard.Aboba@microsoft.com> wrote:
>>
>> Comments below.
>>
>> On Feb 11, 2019, at 2:45 PM, Varun Singh <varun@callstats.io> wrote:
>>
>> Hi all,
>>
>> I  caught up on the mail discussion, initially, I did not run through all the cases, but Bernard's follow up email, makes me question if we have to be more specific.
>>
>> Everything in this email is scoped for the SDP.
>>
>> 0) IIRC the SDP for FlexFec was supposed to be declarative and not really a negotiation.
>>
>>
>> [BA] Is it only declaring in one direction - what to send, but not what it can receive? Or is there something implicit there?
>
>
> Yes. It’s only in one direction. The implicit assumption is that the endpoint can receive what it offers.
>
> I can think of an argument being made, where the Offers are what type of FEC protection/structure is willing to receive rather than send. However, the negotiation model would be rather complex (and the ability to announce several capability modes)
>
>
>
>>
>>
>> - Offerer supports FlexFEC, but the Answerer does not implement it, the Answerer would either reject the offer or remove flexFEC from the answer.
>>
>>
>> Otherwise, if both support FlexFEC, the Answerer would just send its own FlexFEC (L,D, ToP) configuration.
>>
>> I do not think negotiation makes a lot of sense:
>> For uni-directional media, offerer specifies L, D, ToP. Logically, the answerer cannot ask for higher values of L and D, or a different ToP. I think if the answerer disagrees in this case, it would just reject the offer or remove flexFEC from the answer.
>>
>>
>> [BA] Agree that negotiation isn’t a good model - but the asymmetry between Offerer and Answerer can create questions.
>>
>> What does an Offerer do if it receives an Answer with settings it does not support?  Is there a way for the Answerer to infer the set of settings an Offerer supports so as to make this unlikely?
>
>
> I don’t think there are really options in this case.
>
> If the offerer wants to use the interleaved mode, I don’t see a legitimate case for the answerer to try to figure out what other modes exist. In general I can’t see in what situation would negotiation help?
>
> Are you thinking of a situation where an offerer is not very opinionated at wants to describe that it’ instead lists a lot of L D ToP capabilities that the answerer then picks from?
>
>>
>>
>> For bi-directional media, the networks might behave differently, and thus, the endpoints may want to choose asymmetrical L and Ds. Which would mean that the Offerer and Answerer can have different L and D and O/A request and response is just telling the other party what their respective L and Ds will be?
>>
>>
>> [BA] Makes sense.
>>
>>
>> 1) The whole point of specifying L,D, and ToP (modes 0,1, and 2) in SDP was to have a rigid FEC transform structure. Agree or disagree?
>>
>>
>> [BA] Rigid structure makes sense if the goal is to maximize interop by specifying well known and required modes. But without required support for a set of configurations it can increase the complexity of negotiation. I do not like the idea of having to offer multiple potential flexfec configurations, for example.
>>
>>
>> 2) ToP and L/D modes
>>
>> - If an endpoint uses ToP 1 (non-interleaved), it must provide the number of columns (L)
>> - If an endpoint uses ToP 0 (interleaved), it must provide both L and D. L to know how much to skip and D to know which packets will be present.
>> - If an endpoint uses ToP 2 (2 Dimensional), since all packets in L and D are protected, it must provide L and D.
>> - If an endpoint wants to use the flexible FEC mode it must not specify L, D, or ToP.
>> (skipping retx for this now)
>>
>> Agree on these rules above?
>>
>>
>> [BA] Yes.
>
>
> I skipped RTX before. So if I understand some of the confusion and now I’m not sure what ToP 3 really means.
>
> Do ToP modes 0, 1, and 2 implicitly mean no RTX?
>
> If so, why do we have this following ambiguity  (L, D, ToP are all missing) means it is both Flexfec FEC and flexfec RTX?
>
>>
>>
>> I am assuming that L and D numbers in the SDP are exactly the ones that will be used in the protocol and the endpoints are not using the L and D values to mean anything between 0 to the specified value.
>>
>>
>> [BA] Is there an implicit indication of what the Offerer can deal with in an Answer (e.g. L and D values less than those in the Offer are supported in an Answer)?
>
>
> I think the implicit assumption is that all of  flex FEC spec is implemented.
>
> Offer can send and receive  X and answerer can send and receive Y.
>
> I can’t see why we would endorse a partial implementation?
>
>>
>>
>> 3) FlexFEC Retx and FlexFEC FEC
>>
>> - If an endpoint wants to use the flexible FEC and FlexFEC Retx it must not specify L, D, or ToP.
>>
>>
>> [BA] Makes sense - but what is required of a flexible mode receiver? Must it be able to decode anything a sender can send? If not, how does it tell the other side that it received something it could not decode?
>>
>> - If an endpoint wants to use only the FlexFEC Retx it will set ToP to 3 and skip L and D modes.
>>
>> Is there a way to specify FlexFEC and FlexFEC Retx?
>
>
> Should there be explicit way to say in SDP
>
> + flexfec FEC only
> + flexfec RTX only
> + flexfec FEC and RTX, both?
>
>>
>> If the endpoints are using a declarative modes, I dont think there is an issue here. There can be assymetry and if the other party does not like the Offer it can reject it or remove flexFEC from the answer.
>>
>> 4) FLEX FEC Retx and 4588 Retx =)
>>
>> The offer contains
>> FLEXFEC RTX and FEC along with 4588 RTX, i.e., no L,D,ToP for FlexFEC and 4588 retx
>>
>> The Answerer can remove the flexFEC line to indicate that it wants to use 4588 Retx, but thus it cannot have any form of flexFEC.
>>
>> Without a re-offer, I dont think the endpoints can do anything better.
>>
>>
>> [BA] Can we interpret negotiation of 4588 RTX to mean “no flexfec rtx, please”?
>
>
>
> Going with the declarative model and restrictions of the SDP o/a semantics (and I’m really suspicious about the validity of what I’m suggesting below)
>
> Case 1: everyone is happy
> Offerer declares rfc4588 RTX and flexfex (with Flex RTX) meaning it has complete flexibility in sending and receiving.
>
> Answerer responds with rfc4588 RTX and flexfec (without RTX, I don’t think we have a way of doing that), with this the answerer is declaring its restriction.
>
> Both parties in this case can figure out what needs to be done.
>
> Case 2: no RTX because no compatibility
>
> Offerer declares flexfec (with flex RTX), so no rfc4588 supported. Answerer can respond with flexfec (without RTX).
>
> In this case, while the offerer can send flex RTX the receiver won’t decode it (and answerer would anyway just discard these packets) So it can just assume not to send it. The answerer assuming didn’t want to send or receiv RTX would not send flex RTX.
>
>
>>
>>
>>
>>
>>
>> --
>> Founder, CEO, callstats.io
>> http://www.callstats.io
>>
>> Interested in networking, media quality, and diagnostics.
>> We are hiring!: www.callstats.io/jobs/
>
> --
> Founder, CEO, callstats.io
> http://www.callstats.io
>
> Interested in networking, media quality, and diagnostics.
> We are hiring!: www.callstats.io/jobs/
> --
> Founder, CEO, callstats.io
> http://www.callstats.io
>
> Interested in networking, media quality, and diagnostics.
> We are hiring!: www.callstats.io/jobs/



--
Founder, CEO, callstats.io
http://www.callstats.io

Interested in networking, media quality, and diagnostics.
We are hiring!: www.callstats.io/jobs/