Re: [Wish] New draft version draft-murillo-whip-01
Adam Roach <adam@nostrum.com> Thu, 27 May 2021 21:37 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 498173A1438
for <wish@ietfa.amsl.com>; Thu, 27 May 2021 14:37:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.079
X-Spam-Level:
X-Spam-Status: No, score=-2.079 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, HTML_MESSAGE=0.001,
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 g-2y6EBi-xZg for <wish@ietfa.amsl.com>;
Thu, 27 May 2021 14:37:40 -0700 (PDT)
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 58B453A1435
for <wish@ietf.org>; Thu, 27 May 2021 14:37:40 -0700 (PDT)
Received: from Zephyrus.local (76-218-40-253.lightspeed.dllstx.sbcglobal.net
[76.218.40.253]) (authenticated bits=0)
by nostrum.com (8.16.1/8.16.1) with ESMTPSA id 14RLbZXT080267
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
Thu, 27 May 2021 16:37:35 -0500 (CDT)
(envelope-from adam@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com;
s=default; t=1622151456;
bh=Eow2vbgy10+QsiJGuTTSHOEj89tmg/cFG0ZhBEfXvRA=;
h=Subject:To:References:From:Date:In-Reply-To;
b=DPHr5xx2JR8ZtccQzxSYZ3uI9b83udL9P8nAxE++W60pvp4i9UnzSZijeXVOv5t9+
Ev+XhjSgJJA2qDHtGtXpwlfnuZVVQq4EdUdlX7aC+rmqLL81C2vT452r6jOb+Ockto
El3MhBanUZhXbJaIv/BJVJr/UKfnStQVorryXwCg=
X-Authentication-Warning: raven.nostrum.com: Host
76-218-40-253.lightspeed.dllstx.sbcglobal.net [76.218.40.253] claimed to be
Zephyrus.local
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>, wish@ietf.org
References: <CA+ag07aArqZfdNEDLvm-T1+RN7Xf8PzU0yLoVXdjJbyAHCTZ-Q@mail.gmail.com>
From: Adam Roach <adam@nostrum.com>
Message-ID: <e68725e0-aebe-a5c6-b5da-1b763a98560b@nostrum.com>
Date: Thu, 27 May 2021 16:37:29 -0500
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+ag07aArqZfdNEDLvm-T1+RN7Xf8PzU0yLoVXdjJbyAHCTZ-Q@mail.gmail.com>
Content-Type: multipart/alternative;
boundary="------------EF696E74BB4C7F5D3426308C"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/ixj9EkPQqZKCWcB_VFaN3TvM7lY>
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: Thu, 27 May 2021 21:37:53 -0000
Thanks for the new version, Sergio! I apologize for being somewhat absent since our March meeting. I had a partially-typed-up summary of issues and resolutions started, but had to work on some different priorities for a couple of months. I'll go over the items that I had notes for from our last set of conversations below, along with comments and proposals. In general, I really like all of the changes to the draft. ---- Item 1: SVC and Simulcast. There are basically three questions here: (1) does the protocol need to support SVC and simulcast; and (2) are clients required to support SVC and simulcast, and (3) are servers required to support SC and simulcast. My suggestion for a path forward is: - Yes, the protocol needs to support these features, and will informatively cite RFC 8853 and RFC 6190 as the means for doing so. - No, clients are not required to support these mechanisms, and will use the procedures in RFC 8853 §5.3 and RFC 6190 §7.2.2 to negotiate whether they will do so. - No, servers are not required to support these mechanisms, and will use the same procedures as clients to negotiate their support. ---- Item 2: Signaling within a session The new proposal in the document sends the initial offer in a POST, and the server replies with a 201 that contains an answer in the body, and contains a link corresponding to the created session in a "Location" header field. I've poked around and convinced myself that this is a perfectly good use of 201, and that it gets the O/A exchange completed in a single transaction, and so I support the approach. ---- Item 3: ICE Trickle & Restart The new proposal in the document specifies the use of PATCH with application/sdpfrag for both trickle and restart. I really like the ability for the client to initiate restart, BTW, as it allows for transition between, e.g., mobile networks and WiFi for mobile clients, so this is a very important addition for me. This proposed mechanism looks perfectly fine to me, although it comes with the caveat that this approach only allows the client to trickle candidates, and only allows the client to request an ICE restart. For the trickle case, I think this is okay: in the vast majority of the cases, the server will not need to gather candidates and will simply be using host candidates. Even in the unlikely case that the server needs to gather candidates, this approach at least allows client and server collection to take place in parallel. For the restart case, this requires the client to be completely responsible for detecting and repairing failed ICE connections. Since there is no media flowing from the server to the client, this means that the client will need to wait some multiple of the RTCP transmission interval before it can determine that the connection is no longer working -- in practice, this means it will take on the order of 5 to 20 seconds to perform such detection and trigger a restart. This opens up a number of options: (a) Live with this situation (b) Specify something at the media level, such as a faster cadence for RTCP RR packet transmission from the network to the client so detection can take place faster (c) Introduce a two-way channel for server-to-client communications I gather that (c) remains unpopular due to its complexity. I'm okay with both (a) and (b), with a slight preference for something along the lines of (b) -- largely because users will consider the system to be completely failed long before client detection if we go with (a). ---- Item 4: Session Termination The current draft supports this through the use of a DELETE message sent to the session endpoint. This approach seems quite sensible, and it allows the signaling layer to perform swift resource cleanup in the sunny-day case. As with the ICE signaling above, this approach means that servers cannot initiate session termination on the signaling layer. I would propose that we add explicit text that specifies that network-initiated teardown can be performed by the network sending RTCP BYE packet(s) to the client. The client would be responsible for then initiating a DELETE operation on the signaling layer (which gives the network confirmation that the client is aware of the session termination, and has had the opportunity to notify the user). ---- Item 5: Heartbeating This proposal does not include any means of signaling-level detection of client-side session failure (e.g., the client loses a network connection or crashes). Based on previous conversations about the intention of media channels potentially surviving a signaling-level failure, I gather that this is considered a feature rather than an omission. After some internal discussion, I'm okay with this, even if it isn't my preferred approach. However, if the idea here is that media can survive independently of session state, then I'd like to also see a (required) client-to-network RTCP BYE packet sent whenever a session is terminated. I propose that this would happen in addition to the DELETE operation, not instead of it. ---- Item 6: Extensibility This proposal does not have any defined extension points. The operations performed on the session resource are mapped onto HTTP methods, and the currently proposed methods have a good semantic match to the operations that they correspond to. What I would propose is: (1) The base WHIP document does not address extensibility except for a statement that GET operations on the created resource URL (the one that we get in the "Location" header field) are reserved for future extensibility (this means that unextended servers will need to return a 405 response to GET on the resource); (2) Separate from the specification of the base WHIP document, we create a new document that discusses how to use GET to bootstrap protocol extensions. I have ideas about how to do this, but would like to make progress on the core protocol before we start those discussions. /a On 5/19/21 14:43, Sergio Garcia Murillo wrote: > Hi all, > > I have just published a new version of the whip draft ( > https://datatracker.ietf.org/doc/html/draft-murillo-whip-01) with the > updated I outlined in a previous email a while back: > > - Return a resource URL in the response to the HTTP POST with the SDP O/A. > - Allow trickle ICE and ICE restarts via HTTP PATCH with an > application/trickle-ice-sdpfrag > <https://www.iana.org/assignments/media-types/application/trickle-ice-sdpfrag> body > to the resource URL. > - Allow to explicitly terminate the session by the WHIP client by > sending a HTTP DELETE to the resource URL. > > Best regards > Sergio >
- [Wish] New draft version draft-murillo-whip-01 Sergio Garcia Murillo
- Re: [Wish] New draft version draft-murillo-whip-01 Adam Roach
- Re: [Wish] New draft version draft-murillo-whip-01 Sergio Garcia Murillo
- Re: [Wish] New draft version draft-murillo-whip-01 Juliusz Chroboczek
- Re: [Wish] New draft version draft-murillo-whip-01 Juliusz Chroboczek
- Re: [Wish] New draft version draft-murillo-whip-01 Sergio Garcia Murillo
- Re: [Wish] New draft version draft-murillo-whip-01 Juliusz Chroboczek
- Re: [Wish] New draft version draft-murillo-whip-01 Sergio Garcia Murillo
- Re: [Wish] New draft version draft-murillo-whip-01 Juliusz Chroboczek
- Re: [Wish] New draft version draft-murillo-whip-01 Sergio Garcia Murillo
- Re: [Wish] New draft version draft-murillo-whip-01 Adam Roach