Re: [Wish] WHIP enhancements
Adam Roach <adam@nostrum.com> Wed, 24 February 2021 23:25 UTC
Return-Path: <adam@nostrum.com>
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 DE6383A1D4F
for <wish@ietfa.amsl.com>; Wed, 24 Feb 2021 15:25:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.08
X-Spam-Level:
X-Spam-Status: No, score=-2.08 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.001,
T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001]
autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
header.d=nostrum.com
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 c6wy3TennJV9 for <wish@ietfa.amsl.com>;
Wed, 24 Feb 2021 15:25:41 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1])
(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 EF5483A1D4E
for <wish@ietf.org>; Wed, 24 Feb 2021 15:25:40 -0800 (PST)
Received: from Zephyrus.local (cpe-70-122-148-25.tx.res.rr.com [70.122.148.25])
(authenticated bits=0)
by nostrum.com (8.16.1/8.16.1) with ESMTPSA id 11ONPVSL050895
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
Wed, 24 Feb 2021 17:25:37 -0600 (CST)
(envelope-from adam@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com;
s=default; t=1614209138;
bh=PiflsCo2RSyxNG2p4irxEXa7f7QXAnX/R05dDfV3ViI=;
h=Subject:To:Cc:References:From:Date:In-Reply-To;
b=uh1H8w7Z+Vtr9g3TtHNetYWTGiuj/yKKefMbvXqzy0sa2vBrpuFXS0WVB7NJ2ofg5
L3itoVPx4GtuqcdcZeSBgvpSRMYtYu4x1Jhoz8epxGdNL1rxdCR4cqs9VJ3X+AgnUA
RK2wc21smrYp2+C1bYc4qWZO/X87T16R5qzHyqUE=
X-Authentication-Warning: raven.nostrum.com: Host
cpe-70-122-148-25.tx.res.rr.com [70.122.148.25] claimed to be Zephyrus.local
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Cc: "wish@ietf.org" <wish@ietf.org>
References: <92fd1a3f-06a3-3197-dde0-18270b62410c@nostrum.com>
<CA+ag07Y0pZJ5YHtin1Y6X0bOGkYqGOanCaNiM42VFYwXYB6iSQ@mail.gmail.com>
From: Adam Roach <adam@nostrum.com>
Message-ID: <a6184cd1-361d-f9aa-acd4-7586c6ed9006@nostrum.com>
Date: Wed, 24 Feb 2021 17:25:15 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0)
Gecko/20100101 Thunderbird/68.11.0
MIME-Version: 1.0
In-Reply-To: <CA+ag07Y0pZJ5YHtin1Y6X0bOGkYqGOanCaNiM42VFYwXYB6iSQ@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/ARNSSUp1hmhvb6BsG61Zk-N8j0E>
Subject: Re: [Wish] WHIP enhancements
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: Wed, 24 Feb 2021 23:25:43 -0000
Thanks for the quick review of my proposal! Comments inline below. On 2/24/21 02:14, Sergio Garcia Murillo wrote: > The need for a way to explicitly terminate the session was already by > several people, so I think we should definitely include it. > > https://github.com/murillo128/webrtc-http-ingest-protocol/issues/2 > > However, I would be against optionalities, as it makes the testing and > interoperability much more difficult. The scheme I'm looking for here is one of a very small set of core functions, plus optional fields that are ignored if an implementation doesn't understand them. To test interop, all that would be necessary is to check the proper functioning of the core functions (along with, I suppose, cursory checks that unknown fields are correctly ignored). > In that regard, I am against including the trickle option as the > server should be accessible to the publisher, and the only case where > it could make sense is if the WHIP server is on a public server but > the media servers are behind NATed network without port forwarding. > > Also, I am not sure what would be the benefits of the ice restart > (especially if it is optional) compared to just restarting the whole > publishing session again, which is something that the service has to > implementa anyway. I'm definitely okay leaving both trickle ice and ice restart functions off for now, as long as we have some kind of extensibility mechanism. What I'm trying to avoid is some kind of future situation where RT-CDNs are hosted behind application load balancers, and the processing nodes themselves lack v4 unique addresses (and are therefore natted). I don't see it being an issue right now, but depending on how quickly we can rely on 100% IPv6 deployment to end users, it may become an issue in the future. I don't want to be painted into a corner when/if this happens. > On a last note, I would prefer to make the process less json-like and > more http-like, reusing HTTP headers and methods as much as possible. I'm certainly not caught up on JSON as a syntax here, although it does make things considerably easier in most modern development environments. I'm open to other options. Regarding our use of HTTP, I'd very much like to make sure we stay strictly within the bounds of BCP 56 (and, after discussions with the Area Directors, I'm fairly certain that publication of the post-last-call https://tools.ietf.org/html/draft-ietf-httpbis-bcp56bis-09 will be happening in fairly short order, so that's the reference we should be using). So re-using existing HTTP header fields to mean exactly what they're defined to mean is perfectly fine; but for any new information, I think we need to stay with the recommendations of BCP 56bis §4.7. > > My initial thoughts about how to implement it were that the POST > request to start the publication returned a 201 created response with > a Location header indicating the URI to the entity representing the > publication. I don't have any objection in principle to using HTTP header fields for pointing to a created resource, as long as we can make this work for all of our use cases. > And then allow the following methods on the request > > - GET for retrieving information about the state of the publication (TBD). > - OPTIONS for keep alive > - UPDATE for updating the session (we would need to specify what would > we actually allow to be updated) > - DELETE for terminating the session Here's where things get a bit dicey. The observation in BCP 56bis §5.4.2 that OPTIONS is not widely supported is highly relevant: as CDN ingest nodes are frequently behind application load balancers, requiring the support of OPTIONS can lead to significant operational headaches if the load balancers don't support OPTIONS natively. There's also a bit of a philosophical mismatch in that "OPTIONS" doesn't *really* mean "PING," and if the notion is that we're using HTTP methods as our semantic operation point, we really want things that are good semantic matches. UPDATE is even more problematic, as HTTP doesn't have an UPDATE method, and the process of adding new methods to HTTP is politically difficult in the best circumstances (e.g., creating a method that has broad applicability to all resource types -- see the difficulty and insanely long timeline getting PATCH defined for an example). So while I'm not married to any of the aspects of my proposal, I think we need a more explicit way of indicating what operations we need than HTTP methods; and, at the same time, I'm seriously concerned about the future and the viability of a protocol that has no extension points. Can we work to find common ground on those two points? /a
- [Wish] WHIP enhancements Adam Roach
- Re: [Wish] WHIP enhancements Sergio Garcia Murillo
- Re: [Wish] WHIP enhancements Lorenzo Miniero
- Re: [Wish] WHIP enhancements Adam Roach
- Re: [Wish] WHIP enhancements Adam Roach
- Re: [Wish] WHIP enhancements Adam Roach
- Re: [Wish] WHIP enhancements Sergio Garcia Murillo
- Re: [Wish] WHIP enhancements Adam Roach