Re: [Wish] Initial comments on draft-murillo-whip-02

Christer Holmberg <christer.holmberg@ericsson.com> Wed, 25 August 2021 20:34 UTC

Return-Path: <christer.holmberg@ericsson.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 069FE3A0913 for <wish@ietfa.amsl.com>; Wed, 25 Aug 2021 13:34:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.553
X-Spam-Level:
X-Spam-Status: No, score=-2.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.452, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, 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=ericsson.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 qEA687gSdsJe for <wish@ietfa.amsl.com>; Wed, 25 Aug 2021 13:34:18 -0700 (PDT)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00044.outbound.protection.outlook.com [40.107.0.44]) (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 C9D3A3A090D for <wish@ietf.org>; Wed, 25 Aug 2021 13:34:17 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nlfMVCDvK4OtTBWq3Dc56zQoWGRAx0heuUzxNnBpRNGd/pWWoGhQCnIFpG7mMk0OZ7m2qqQ4HA7j7lP/E4qt5GezKuKXatYzRACjNHBjkqGCjxbEmawUcPfXa0fJ0KLiFZwKoBoNVoag9F86s236CL59HS0VzSkq96q4je310/MjiKhCnvTjHE8ehTyq2s3BYr2/zCFEcDa1ighU3CvNqxuym546DGYYTcByQMrX5os/pnTiUbpP446JbqPmBG2McGKuL3deo0njJXuGaOwQU1GeEoFIi7ExhlZsxKb2bONraBMTpqaFRv/eVsGpB88xILMJjDwIXMWgdYeueDi2cQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mm7gfUOuNFUMOv3Ga0pwd3aRWQ6sUIQU0pujEDHUlyE=; b=N+QhA/jn3oMW5Oyc6oi6vN/KrXVGQEkNzAacc/LTJ04BhNJRW77bZgYLHzV9SdGyIYpBrm3B6lsBUQQvtt+MFXhiaeoRsQUmZ12SG3CM+3uWS/OuNCtW2sYtIMNG3XCjd7MEJVfABdBx91OtwSYJ0LFybi1djKBXmitaET+VEuSc7EC4LMT8LlYpeYxqMtPgqyueZhHsS5WDJjzLNBKWO89Ud9tgfzwXzpAMbJFM4GV81I4xn06tV/nZ7kqutvGwINH32jSjDizw0fohqTOhej8g4BsoXWM4cfOTzn0yhloG4CQQKi5qFF6Gdti5gy/DqK3fzKtWBxzqtCQQIXI8iA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mm7gfUOuNFUMOv3Ga0pwd3aRWQ6sUIQU0pujEDHUlyE=; b=vDWu5+iu1akUFR1IUd2OI6f/ukb1v8rS5J3pPBU1HvmD+oh5R0zaTFpYZiZMQ9K/2XXd82uL4AUFcb+E4ansu0zcAHv+QfeF+o7vwC54EwzJEyWU+OcwG1QHwwY42oguozGJR6NJku67s+jCl+PL/gtQoKlvWtqENMFDmLRPwqI=
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com (2603:10a6:7:9f::27) by HE1PR0701MB2267.eurprd07.prod.outlook.com (2603:10a6:3:2a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.12; Wed, 25 Aug 2021 20:34:14 +0000
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::49b7:5cc:5aeb:fb2a]) by HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::49b7:5cc:5aeb:fb2a%4]) with mapi id 15.20.4457.014; Wed, 25 Aug 2021 20:34:14 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
CC: "wish@ietf.org" <wish@ietf.org>
Thread-Topic: [Wish] Initial comments on draft-murillo-whip-02
Thread-Index: AdeIm8xMrd6krm7WRZOghWk/uXTq9gPUbOgAAH/eQuA=
Date: Wed, 25 Aug 2021 20:34:14 +0000
Message-ID: <HE1PR07MB44418D5DBB0CF1976B36254293C69@HE1PR07MB4441.eurprd07.prod.outlook.com>
References: <HE1PR07MB4441D8BE799E5344CD77BA7B93F09@HE1PR07MB4441.eurprd07.prod.outlook.com> <CA+ag07bt4kF3KhV_eoNDmYojdzudNbz4fsf_zrev-ym-PPUP4w@mail.gmail.com>
In-Reply-To: <CA+ag07bt4kF3KhV_eoNDmYojdzudNbz4fsf_zrev-ym-PPUP4w@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 830ccd4b-d4c0-4ada-6b8c-08d96807b417
x-ms-traffictypediagnostic: HE1PR0701MB2267:
x-microsoft-antispam-prvs: <HE1PR0701MB226727714D69420CC97451E893C69@HE1PR0701MB2267.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 1vVlLzfO3QENciC4WeCwLu2aFwMGhsfctKdbUYjPgsRoRuiFtauKprz1KZO1ZXaGG/8msj+Uv1EM7GnvMem1xJ4LsQJVfrxcBZlGcmqcT3tlRqsESkGSDP7Z2APoYW/I1gU37BZapDEjELGyMDGDE3F9edZkN+cF/kvMc3XcdEo/jhaQ7t6OAv7/A/eV58PaQpqaaIRdw51pkEOMKrNkM7alPIeevzZkxKkJ9x3HlxKd6WxBP7dP9Cqy6thEaFChqxv6yQdZ/6n7CYYSae//gWX45Qo9viGfTjLMogbHnD9+wvp9qCv4b/mX6ifG9O8agjXOzfXVP7hR2DM/xQwQsN8AlAOPiP/h9u3u2Hcj6Ogj7MdtVF9jjusGzuj9pw/Fq3fykUyl4uiIntRqfFrtawZThrje93sA8DjpPF7GMOhR1ei/KI3mvMM0NnJfxL7OJDN1fHGYlvIlnRnDK/s8thGG+ae51EDGiBXYr/Ao3wrD2DHkG+rlP+CFnu5azeLqxBta6EDv1MY1m92TrOqQh1mdFQ4da373RTQlAmUWfIQgZbJCzh9oibMXoZgw+39EAG5qf/rpi2olLYslRQA+Qk9q4OFBvGP/Kn7bi0zKSuyit1bevl3t77mrr6WLILePEokTClh8lLuV9yT3HieB7JRompTfkUTvLXT2h3BJcJ7UHZfg7G+m2xi8RZkUeUZn/xK9HtyttxFkdNtv8BIaafWcV2XoFC3UwPvp/I5+Mz4vwmSMgAia4WPinVgVTFj6k1gPT1NkfkP5KgusEar2QNboJjo5AyP5ZeDzmvBp3jBAEfNfmtKrkxnjvfdq8jel1Ga9wG+16IJco6zBz5krWA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB4441.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(346002)(366004)(396003)(376002)(966005)(55016002)(9686003)(44832011)(38100700002)(7696005)(122000001)(76116006)(66446008)(86362001)(52536014)(64756008)(66556008)(66476007)(66946007)(5660300002)(33656002)(26005)(186003)(6916009)(6506007)(71200400001)(38070700005)(478600001)(4326008)(2906002)(8676002)(8936002)(83380400001)(316002); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: GUEzT4vZHaJ0saTH9FhNm9QjWaO+EYEAB0BEZafmMYr/11L6GBPjd6/H+rjL9lhnvoAxwxLvcUHV5IMQZ9AHL4H41m4q68Q0N2iPEq5F3N7wUk/x2Rfzaw3q4KdqQx9BwMvQNaJj4pKS4a5yuC61Ckf6hIQW2SwCOdSB2RnmrWaFZWw3XsKfDhC77phpb7GX/CIHGqs4gptnOF1h1g4VhPFXTFKVe1jAVjHCfL788BEVADLkX5r7KHIGznM5moag7CCbBBJclCg3hg6k/xRsA9RGabFBC2nBu8r7uP52uXzIqnGqh+XWenz/8KiSLb+VgpL97bGEX1c3fjQOhS2XhiRqhz/TfZYaCziNHZu04GQAbydL0YSOoG9IWufMuQ6LKw7SZ8c4IKKGg6wSVigphCm5/Soi6KZ+fZdRHyoi/bA6r6c35J6xcRLjyFOGjkEXbclewHTmIDLjTaS/mujKPzmOcX2vPR/HbzNhwt1u/Cq4IdhPJjpYJYBqfwajSHFbIFrWPy8Mc3lnWTCsd56SWsqKxssLQcw4KEjxfGx8ATVkfMm6+5vIUUaDHE3JF18HEz0Tyd55Ytztui4RJEB3B/sx1taY3ruP+PUk03bwE53WHocF8oFHQM/J515JujDAbcCwH2yQggwSuTSBeozPHZ4V+LZ+MlZEVrdgQep9j6rzWloqryvAlBceZusnjqaj0M1B9VGAkIx7tySvrb1Lg2/49Ceb6yVvzq4+Cr0I3mWD1IWZungzCC50R9uaaUDSYHRjglNrO1ul4drpnL9sMomqSOzpM48U5D5Zvv7b5b5vfxjOvS12+ZGaS/UK8iys+gZCUJ8bYCHZkJmTp08vX6WFpxoqhzgOsTF/ea9b0ZFkv3p7915qZB46uoVS2lRoiIsbEusPQgROEnrFWXBGPM5WreHoGS6Ioaqh3pwiLRCRM3VUjnR/DaqlnBWX/Ecfl1WVmHyc030o6/7vqWIVIzmtrCvrPBzus1sAareFEyd/5511dkBKG/ja6eHLtX1DRBeRH0PFoPM5UxCCAktsRIVy2QlN4j+quTb0s5L8YzpWGEFHKF37t989+DNzCtrmi6eRl40uFr5bhmLOybpZ4J8yYE5384CDtcGX6KUgnonvDOv0Lj7GQpef/Qkw2unOAvfYzN/BUA15Swi+VwQhgAve2wcdxJoIBrohHHH5BxuMRblQD3hGruEADz0T+vk5Iw8ylFjgaHzZ7H0n0HvrY4ZPS3Sp+Ax8ylQqMuvd9ql8rZifLeaq7u0DoBPMjCnrybSLO+FW8HnbWTc48tanQLUVegYJsAfAA5V2syq1sORJHgyP21ejh6GqXWDaW3sY
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB4441.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 830ccd4b-d4c0-4ada-6b8c-08d96807b417
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2021 20:34:14.3620 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MfF11O0q3nX/Ous0XKBDCNBKzdFep/mFSqMd0kWLpg8EQdQH8y3gDzVzBI1nNhx8KIHIExpA22tqd4mkN5HHGkXM1BG4XmAkz/QwR8D6KQE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2267
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/9Jt6euBh_bsgIWkyoLu9kt-xZak>
Subject: Re: [Wish] Initial comments on draft-murillo-whip-02
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, 25 Aug 2021 20:34:24 -0000

Hi,

See inline.
 
General:
=======
 
Q_GEN_1:
 
>> The motivation behind WHIP seems to be broadcasting.
>> 
>> But, unless I’ve missed something, what the draft does is defining how to do SDP O/A using HTTPS. So, it could be used for any SDP O/A use-case. It doesn’t even have to be WebRTC, as long as the client and server support the required extensions etc.
>
> The SDP O/A is restricted to one audio and/or video track in sendonly, indeed anyone could do an SDP O/A in an HTTP POST with whatever semantics they want, but the WISH wg is chartered to specifically cover the ingestion use case only.

Maybe it would be good to say that the mechanism can be enhanced for other usages too, but those are outside the scope of the document.

Also, if you are not planning on using the WebRTC data channel I think it would be good to explicitly indicate that.


Section 1:
=======
 
Q_SEC-1_1: 
 
>> The text says:
>> 
>>   “WebRTC intentionally does not specify a signaling transport protocol
>>   at application level, while RTCWEB standardized the signalling
>>   protocol itself (JSEP, SDP O/A) and everything that was going over
>>   the wire (media, codec, encryption, ...).”
>
>RTCWEB did not standardize the signaling protocol. 
> 
>You are right,  adding a github issue to track and solve it.
>https://protect2.fireeye.com/v1/url?k=772ed376-28b5ea32-772e93ed-861d41abace8-803b50005df852cb&q=1&e=d10bad7b-9658-47e5-8a4e-85689e02a197&u=https%3A%2F%2Fgithub.com%2Fmurillo128%2Fwebrtc-http-ingest-protocol%2Fissues%2F12

Thanks!


Q_SEC-1_2: 
 
>> The text says:
>> 
>>   “RTSP, which is based on RTP and maybe the closest in terms of features to webrtc, is not compatible with WebRTC
>>   SDP offer/answer model.”
>> 
>> What is “the WebRTC offer/answer model”?
>
> This seems editorial to me, do you have an alternative wording for this?

I assume what you want to say is that the features used by WebRTC have not been defined for RTSP. But, it is not only about offer/answer, it is also about e.g., ICE etc.

I guess it would also be good to say "which is ALSO based on RTP".


Q_SEC-1_3: 
 
>> The text says:
>> 
>>   “This document proposes a simple protocol for supporting WebRTC as
>>   ingest method which is:
>> 
>>   …
>> 
>>   o  Fully compliant with Webrtc and RTCWEB specs.”
>>
>> Based on some of the suggested restrictions, related to e.g., SDP O/A transactions (only allowing the initial O/A), ICE (related to trickle and restart), and the SDP setup attribute
>> misalignment (allowing setup:active in the initial offer) etc, I don’t think that is “fully compliant”. Or, if I have misunderstood, what exactly are you referring to?
> 
> That any webrtc compliant endpoint can implement WHIP.

I think it would be better to say that WHIP is designed in order to be compliant with WebRTC, but that a set of restrictions apply. 
 

Section 4:
========
 
Q_SEC-4_1:
 
>> The text talks about usage of the Location header field in the 201 response. But, I assume usage is optional, and that a server can choose to use the WISH endpoint for the whole session?
>
> No, it is not optional, the url of the created resource is returned in the 201 response and it must be used for doing the ice trickle and termination request. Nothing prevents the server from using the same url as the whip endpoint one.

Isn´t that the implicit meaning if the Location header is not present?
 
 

Section 4.1:
==========
 
 
Q_SEC-4-1_1: 
 
>> The text says:
>> 
>>   “In order to simplify the protocol, there is no support for exchanging
>>   gathered trickle candidates from media server ICE candidates once the
>>   SDP answer is sent.  So in order to support the WHIP client behind
>>   NAT, the WHIP media server SHOULD be publicly accessible.”
>> 
>> Just because the server doesn’t support trickle, it doesn’t mean it has to be publicly accessible. Not supporting trickle just 
>> means that the server needs to collect all candidates before sending the answer.
> 
> We can remove the  last sentence as it is superfluous, adding a new github issue
> https://protect2.fireeye.com/v1/url?k=26929152-7909a816-2692d1c9-861d41abace8-717a11d6e023f0d4&q=1&e=d10bad7b-9658-47e5-8a4e-
> 85689e02a197&u=https%3A%2F%2Fgithub.com%2Fmurillo128%2Fwebrtc-http-ingest-protocol%2Fissues%2F13

Also perhaps saying something like "no support for exchanging further candidates (ICE trickle)"


Q_SEC-4-1_2: 
 
>> The text says:
>> 
>>   “A WHIP client receiving a 405 response for an HTTP PATCH request
>>   SHALL not send further request for ICE trickle or restart.  If the
>>   WHIP client gathers additional candidates (via STUN/TURN) after the
>>   SDP offer is sent, it MUST send STUN request to the ICE candidates
>>   received from the media server as per [RFC8838] regardless if the
>>   HTTP PATCH is supported by either the WHIP client or the WHIP
>>   resource.”
>>
>> This sounds really strange. 
>>
>> The text says that if the client receives 405, because the WHIP resource does not support trickle, the client can still trickle candidates per RFC 8838 (by sending STUN requests from the new candidates).
>> 
>> Creating peer-reflexive candidates by sending STUN requests from NEW candidates, even if trickle isn’t used, sounds like a hack to me.
>
> That was already agreed to be removed. ICE lite servers would just need to ignore the signaled candidates on the HTTP PATCH requests and reply only to the incoming stun requests from the new candidates.
 
Ok.

I have a couple of more generic comments.

Q_GEN_2:

As a frequent user of a broadcasting/ingestion application myself, once the connection has been established, I am able to send at least START, STOP, PAUS and RESUME commands. In case of sport events, you are also able to send commands regarding scores etc.

There doesn't seem to be any of that in WHIP. Instead, at least as far as the server is concerned, the media ingestion starts once the connection has been established, ends once the connection is terminated, and there is no way to exchange any kind of non-media data during the session. Perhaps that is good enough when teenagers want to ingest something with their mobile, but I doubt it will be useful for more professional usages. 

If that is true, I think it would be good to point out in the draft.


Q_GEN_3:

There is almost no text regarding WHY someone should use this mechanism, instead of existing ones. There is a sentence saying "and content providers still rely heavily on protocols like RTMP". Ok, so why is that a bad thing? Why should one use WHIP instead? Now it seems like the only reason is because it is an IETF standard, but I hope there is more than that.

Regards,

Christer