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

Juliusz Chroboczek <jch@irif.fr> Mon, 09 May 2022 15:41 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 6F269C15E6E5 for <wish@ietfa.amsl.com>; Mon, 9 May 2022 08:41:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 GV65gS7b27Yr for <wish@ietfa.amsl.com>; Mon, 9 May 2022 08:41:07 -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 A9885C180A61 for <wish@ietf.org>; Mon, 9 May 2022 08:41:00 -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 249FeuFu011328 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 9 May 2022 17:40:56 +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 249FeuuB029244; Mon, 9 May 2022 17:40:56 +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 3ABB91011F2; Mon, 9 May 2022 17:40:56 +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 13LY8K9P-SNn; Mon, 9 May 2022 17:40:53 +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 D9DD81011EF; Mon, 9 May 2022 17:40:53 +0200 (CEST)
Date: Mon, 09 May 2022 17:40:53 +0200
Message-ID: <87r1524su2.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Cc: WISH List <wish@ietf.org>
In-Reply-To: <CA+ag07ZZ2d=+MowReFGfb-RLhCDc4b+2RistAeDQrjfd+091HQ@mail.gmail.com>
References: <CA+ag07ZZ2d=+MowReFGfb-RLhCDc4b+2RistAeDQrjfd+091HQ@mail.gmail.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.1 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]); Mon, 09 May 2022 17:40:56 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Mon, 09 May 2022 17:40:56 +0200 (CEST)
X-Miltered: at korolev with ID 62793608.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 62793608.001 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 62793608.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<jch@irif.fr>
X-j-chkmail-Enveloppe: 62793608.001 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 : 62793608.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 62793608.001 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/V4SX1uKMjg6HF5jpiWD7YccVfvo>
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: Mon, 09 May 2022 15:41:11 -0000

> Juliusz, as I think it was you the one that commented on the issue, could you
> highlight an example one of what should be changed?

Always at your service :-)

# 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".

> 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?

> 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.

# 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).

# 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".

> 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.

> 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.

# 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.

> It COULD be also possible to configure

I don't think is be normative.  I suggest "It may be also possible".

# 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.

> 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.)

# 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).

-- Juliusz