Re: [Wish] Review of normative language in WHIP draft

Sean Turner <sean@sn3rd.com> Wed, 01 June 2022 14:23 UTC

Return-Path: <sean@sn3rd.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 D5CA6C14F749 for <wish@ietfa.amsl.com>; Wed, 1 Jun 2022 07:23:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.109
X-Spam-Level:
X-Spam-Status: No, score=-2.109 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-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=sn3rd.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Aq35NcIfiaDL for <wish@ietfa.amsl.com>; Wed, 1 Jun 2022 07:23:54 -0700 (PDT)
Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1DE12C14F74A for <wish@ietf.org>; Wed, 1 Jun 2022 07:23:53 -0700 (PDT)
Received: by mail-qv1-xf2a.google.com with SMTP id cv1so1559282qvb.5 for <wish@ietf.org>; Wed, 01 Jun 2022 07:23:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sn3rd.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ZTgEDTAgA75WUj7Q0oxt0F3PwNJt24CThA2FW32UYkQ=; b=cIcL7G9MJxHkPVkW70dJLTDc/3a+nV87K61X0/ri2+BFry22nNrYthRYSXtywr29vK s0u7Xcv6DovrujNUx7Q6t6NtgoO+KDmvPt/Ptu/vzq6/g2tdXjAl0J4lVZJQGGyql0Rn 3XM8UXkh9o0NibVBzmMQAWO6W2JRAdBM1uIjM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=ZTgEDTAgA75WUj7Q0oxt0F3PwNJt24CThA2FW32UYkQ=; b=ULW6CclRodvhcQx2EhqczTkRICs9tSXRXKtQNHpCFHy46hDDsxkLpIJ5ZVOYquD834 kHxWgCzjROR3/Owk+Vpgp0C8ZsocRmfKIh5ss/dy6bl+ki5oOfIU1khuxFeVepahkz1X BKw8uNwikrWy4CrigZu8Oq5bELjq8H10wPS9xpFdQY06CB1Rp8rNSjpwONVkdS6JX/Zq ZRCgNjg7e6sU2hjcKwus/es9jSWc8Be4j4oCqQcEn8RUKPBBXiUtnU1Y6WTLc/D1xm8i yxNWmruueNfAG0SIxfRBeD0vrJTr0GX8TLCNjVz8JXXZLRwRdilugWe7ReyTCrFxPSCp PtNg==
X-Gm-Message-State: AOAM530+dCghu+FbHe5VyFTvbnjxmEVRRoS9hs90ATTPiB8gQWRE/Ar/ 8IYg7Vr/KykOvBtjLW2R0iciivIjARJrcw==
X-Google-Smtp-Source: ABdhPJxnlc5mBSHd+NcVFJko8fpBJ48dP9k91r32OUD7Iio7RpioLEd8c3toz+ZCiZcSvAv9MKzlzQ==
X-Received: by 2002:a05:6214:1cc6:b0:45d:a313:d2d with SMTP id g6-20020a0562141cc600b0045da3130d2dmr21372011qvd.127.1654093432881; Wed, 01 Jun 2022 07:23:52 -0700 (PDT)
Received: from smtpclient.apple (pool-72-83-85-4.washdc.east.verizon.net. [72.83.85.4]) by smtp.gmail.com with ESMTPSA id i12-20020a37c20c000000b0069fc13ce20asm1301962qkm.59.2022.06.01.07.23.51 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Jun 2022 07:23:52 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\))
From: Sean Turner <sean@sn3rd.com>
In-Reply-To: <CA+ag07agOBjZaQ5s6evrjOri64+txA36OtKexRPJaWadCjm5CA@mail.gmail.com>
Date: Wed, 01 Jun 2022 10:23:51 -0400
Cc: WISH List <wish@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <242C387B-6C2B-459E-B12C-471C00A5B272@sn3rd.com>
References: <CA+ag07ZZ2d=+MowReFGfb-RLhCDc4b+2RistAeDQrjfd+091HQ@mail.gmail.com> <87r1524su2.wl-jch@irif.fr> <CA+ag07agOBjZaQ5s6evrjOri64+txA36OtKexRPJaWadCjm5CA@mail.gmail.com>
To: Juliusz Chroboczek <jch@irif.fr>, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
X-Mailer: Apple Mail (2.3654.120.0.1.13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/jnSNA3saUG5EKw3Q6ULypyNoTZU>
Subject: Re: [Wish] Review of normative language in WHIP draft
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.34
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, 01 Jun 2022 14:23:57 -0000

Just wanted to check that these PRs are good to go?

spt

> On May 12, 2022, at 06:09, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> wrote:
> 
> Hi Juliusz,
> 
> Thank you for your feedback! Answers inline below:
> 
> 
> 
> # Section 4.1.
> 
> > A WHIP resource MAY not support trickle ICE
> 
> While this is not ambiguous, it might be read as "MAY NOT".  I suggest
> rewording as "Support for trickle ICE by WHIP resources is OPTIONAL".
> 
> How about this?
> https://github.com/wish-wg/webrtc-http-ingest-protocol/pull/28
> 
> 
> > Entity-tag validation MUST only be used for HTTP requests requiring to
> > match a known ICE session and SHOULD NOT be used otherwise
> 
> So it's a MUST or a SHOULD?
> 
> I think that the confusing word is "only" 
> https://github.com/wish-wg/webrtc-http-ingest-protocol/pull/29
>  
> 
> > In any case the session MUST be terminated if the ICE consent expires as
> > a consequence of the failed ICE restart.
> 
> Is this an additional requirement, or is it a consequence of a requirement
> elsewhere?  It is my understanding that the session MUST be terminated if
> ICE consent expires or is revoked, whether due to a failed ICE restart or
> any other reason.  This sentence should therefore not use normative
> language, as a normative requirement should be stated exactly once.
> 
> Unfortunately, I cannot find where in the document it says how to deal
> with ICE consent expiration.  Otherwise, I would suggest something like
> 
>   As pointed out in paragraph 42 of Section 57, the session must be
>   terminated if the ICE constent expires, whether as a consequence of
>   a failed ICE restart or any other reason.
> 
> Done in 
>  https://github.com/wish-wg/webrtc-http-ingest-protocol/commit/689b02ff1a651b4cef37165da6294fb4558dd9b0
> 
> Note that in rfc7675 section 5.1:
>    Consent expires after 30 seconds.  That is, if a valid STUN binding
>    response has not been received from the remote peer's transport
>    address in 30 seconds, the endpoint MUST cease transmission on that
>    5-tuple.
> 
> 
> 
> # Section 4.2
> 
> > SDP bundle SHALL be used by both the WHIP client and the media
> > server. The SDP offer created by the WHIP client MUST include the
> > bundle-only attribute in all m-lines as per [RFC8843].
> 
> I suggest a non-normative "must", since it is not an extra requirement (it
> is a direct consequence of the normative SHALL).
> 
> 
> done
> https://github.com/wish-wg/webrtc-http-ingest-protocol/commit/aaf0e6b4b92c39c53e245b1bcdcf15d99b2855f3
>  
> # Section 4.3
> 
> > WHIP endpoints and media servers MAY not be colocated on the same server
> > so it is possible to load balance incoming requests to different media
> > servers.
> 
> "MAY not" might be read as "MAY NOT".  I suggest non-normative "might not
> be colocated".
> 
> done
> https://github.com/wish-wg/webrtc-http-ingest-protocol/commit/7053cbb4e7fade9c5cde76920d75e12960562b3c
> 
>  
> > WHIP clients SHALL support HTTP redirection via the 307 Temporary
> > Redirect response code
> 
> Is 308 not allowed?  I think it should be allowed.  If it's not allowed,
> please add a statement that servers MUST NOT reply with 308.
> 
> I don't think 308 is a good response code for load balancing:
>    The 308 (Permanent Redirect) status code indicates that the target
>    resource has been assigned a new permanent URI and any future
>    references to this resource ought to use one of the enclosed URIs.
> 
>  
> The intention of this paragraph is to ensure that the server can ensure that the clients would support 307 for load balancing. I don't think we should ban the usage of 308 which may be used for other purposes (for example if the whip server has been moved to a different domain) and we want to give a chance for the client to solve it instead of failing. 
> 
> 
> 
> > In case of high load, the WHIP endpoints MAY return a 503 (Service
> > Unavailable) status code
> [...]
> > The WHIP endpoint MAY send a Retry-After
> 
> I suggest non-normative language ("might").  I also suggest merging the
> two paragraphs.
> 
> Done
> https://github.com/wish-wg/webrtc-http-ingest-protocol/commit/26f0c88fe230ddefb139d1a64944b9745d1ca027
>  
> # Section 4.4
> 
> > the WHIP endpoint MAY also include the ICE server configuration on the
> > responses to an authenticated OPTIONS request
> 
> I think that if the server includes ICE configuration in replies to POST,
> then it MUST, or at least SHOULD, also include that information in replies
> to OPTIONS.
>  
> Given that issuing TURN credentials can generate overload as they have to allocate resources or be rate limited I would prefer to avoid making this mandatory or even recommended, but just optional.
>  
> > It COULD be also possible to configure
> 
> I don't think is be normative.  I suggest "It may be also possible".
> 
> 
> Done  
> https://github.com/wish-wg/webrtc-http-ingest-protocol/commit/90cfa2ccc2837c9c47c0a15061fc9a432acb35ee
> 
> # Section 4.5
> 
> > WHIP endpoints and resources MAY require the HTTP request to be authenticated
> 
> I don't think this is normative -- the normative bit is the MUST in the
> next sentence.
> 
> I think that the MAY is correct here indicating that authentication request by the servers is OPTIONAL 
> 
> > WHIP endpoints and resources COULD perform the authentication and authorization
> 
> Again, I don't see how this implies a requirement for the implementation.
> (In fact, the purpose of this whole paragraph is not clear to me.)
> 
> Done 
> https://github.com/wish-wg/webrtc-http-ingest-protocol/commit/c5c9703677cbb3d0ec04a5edf500de17ec74fb5a
> 
> 
> # Section 4.7
> 
> > WHIP servers MUST NOT require the usage of any of the extensions.
> 
> I might be in the minority here, but I can see quite legitimate reasons
> for a WHIP server to reject an offer if the client does not implement some
> extension to the protocol.  For example, a server might reject offers that
> don't come with some non-standard authorisation token (for example based
> on EAP-SIM).
> 
> The idea of WHIP is about interoperability. We want to ensure that anyone that implements a WHIP client based on this specification will be able to speak to any WHIP server regardless of the extensions we make to the protocol, ensuring backward compatibility.
> 
> Best regards
> Sergio
> 
> -- 
> Wish mailing list
> Wish@ietf.org
> https://www.ietf.org/mailman/listinfo/wish