Re: [Wish] New draft version draft-murillo-whip-01

Juliusz Chroboczek <jch@irif.fr> Fri, 28 May 2021 12:43 UTC

Return-Path: <jch@irif.fr>
X-Original-To: wish@ietfa.amsl.com
Delivered-To: wish@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CFD5F3A2786 for <wish@ietfa.amsl.com>; Fri, 28 May 2021 05:43:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 cCtgzPWtaLub for <wish@ietfa.amsl.com>; Fri, 28 May 2021 05:43:46 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C66243A2787 for <wish@ietf.org>; Fri, 28 May 2021 05:43:45 -0700 (PDT)
Received: from potemkin.univ-paris7.fr (potemkin.univ-paris7.fr [IPv6:2001:660:3301:8000::1:1]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 14SChfI1004276 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 28 May 2021 14:43:42 +0200
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by potemkin.univ-paris7.fr (8.14.4/8.14.4/relay2/82085) with ESMTP id 14SChfXQ004326; Fri, 28 May 2021 14:43:41 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id D508DD1F32; Fri, 28 May 2021 14:43:41 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id NZpVjWrdqRhh; Fri, 28 May 2021 14:43:06 +0200 (CEST)
Received: from pirx.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 94AA9D1EFC; Fri, 28 May 2021 14:42:58 +0200 (CEST)
Date: Fri, 28 May 2021 14:42:58 +0200
Message-ID: <87mtsfni5p.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Cc: wish@ietf.org
In-Reply-To: <CA+ag07aArqZfdNEDLvm-T1+RN7Xf8PzU0yLoVXdjJbyAHCTZ-Q@mail.gmail.com>
References: <CA+ag07aArqZfdNEDLvm-T1+RN7Xf8PzU0yLoVXdjJbyAHCTZ-Q@mail.gmail.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/28.0 Mule/6.0
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Fri, 28 May 2021 14:43:42 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Fri, 28 May 2021 14:43:41 +0200 (CEST)
X-Miltered: at korolev with ID 60B0E57D.002 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 60B0E57D.004 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 60B0E57D.002 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<jch@irif.fr>
X-j-chkmail-Enveloppe: 60B0E57D.004 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@irif.fr>
X-j-chkmail-Score: MSGID : 60B0E57D.002 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 60B0E57D.004 on potemkin.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/uauea8ac_ChDAkvEFQ4UxYLh0Fo>
Subject: Re: [Wish] New draft version draft-murillo-whip-01
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: WebRTC Ingest Signaling over HTTPS <wish.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wish>, <mailto:wish-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wish/>
List-Post: <mailto:wish@ietf.org>
List-Help: <mailto:wish-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wish>, <mailto:wish-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 28 May 2021 12:43:51 -0000

> https://datatracker.ietf.org/doc/html/draft-murillo-whip-01

Thanks.  Is anyone implementing a client to test against?

I'm a little confused about how multiple flows are handled.  Is a single
WHIP endpoint able to multiplex multiple flows, or does one WHIP endpoint
correspond to exactly one flow?  If the former, how are ICE restarts and
ICE requests correlated with the flow?  (If the latter, some use cases will
require a dynamic allocation subprotocol.)

> The initial offer by the WHIP client MAY [...] only contain local
> candidates or even an empty list of candidates.

> The WHIP endpoint SDP answer SHALL contain the full list of ICE
> candidates publicly accessible of the media server.

If I read this correctly, you're defining a new, asymmetric form of ICE:
the server collects all local candidates, then allows the client to do
Trickle ICE.  I think it's a good idea, but unless I'm mistaken, that's
a new mode of operation for ICE, one that I haven't seen described in any
other document.

Have you actually implemented that?  How much surgery to your ICE stack
was required?  In short, how painful was it?

On a related note, what happens if the client is on a restrictive network
that doesn't allow UDP?  Are you assuming it has learned the address of
a TURN server out of band, or are you relying on passive TCP candidates?
(Either would be fine, but it needs to be spelled out.)

> The WHIP client MAY perform trickle ICE or an ICE restarts [RFC8863] by
> sending a HTTP PATCH request

Why the uncommon request method?  I find the use of PATCH here suprising.

> A WHIP resource MAY not support either trickle ICE (i.e. ICE lite media
> servers) or ICE restart,

Does the client know beforehand whether that's the case?  For ICE
restarts, that's not a problem (you just attempt an ICE restart, and if
that fails, you tear down the flow and start a new one).

For Trickle ICE, on the other hand, the client needs to know beforehand
whether it can send an incomplete offer and then collect candidates or
whether it must send an offer with a full set of candidates.

Perhaps we could require that a server should reject an offer with
ice-options:trickle unless it can accept further ICE candidates?  That way
a client can fallback to non-trickle operation straight away.

> Unlike [RFC5763] a WHIP client MAY use a setup attribute value of
> setup:active in the SDP offer, in which case the WHIP endpoint MUST
> use a setup attribute value of setup:passive in the SDP answer.

I assume that is to simplify client implementations.  A short rationale
would be welcome.

> Authentication and authorization is supported by the Authorization HTTP
> header with a bearer token as per [RFC6750].

Is that a MUST?  What if my server doesn't do OAuth2, do I need to
implement it just to do WISH?  Or can I stick to HTTP Basic?

Thanks again,

-- Juliusz