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

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Thu, 12 May 2022 10:09 UTC

Return-Path: <sergio.garcia.murillo@gmail.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 62B84C159521 for <wish@ietfa.amsl.com>; Thu, 12 May 2022 03:09:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.097
X-Spam-Level:
X-Spam-Status: No, score=-7.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 oB-g7dVP9xMA for <wish@ietfa.amsl.com>; Thu, 12 May 2022 03:09:46 -0700 (PDT)
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) (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 9768BC15948A for <wish@ietf.org>; Thu, 12 May 2022 03:09:46 -0700 (PDT)
Received: by mail-pf1-x429.google.com with SMTP id 204so4370454pfx.3 for <wish@ietf.org>; Thu, 12 May 2022 03:09:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Lldld8jjzK1YUD74wLgYBhjsFuiTTNxknlUsVMm/sL4=; b=VGWyrIZW4I7LgPfYUDp+KgVNBzuQpAC4k6POKoQLXMT6h04AJwVSgfl5Lz1kYeKOX/ nzKuMjAM+wTnqtwaRpEqpYcFceLSJl8Wgsprcu2eKr+fRXmR9MROr7rzZ2BAXlwf1Wnd x0dDFyAFGVcqg7Y6wlaY/HmhIgWhcub27hkZA1X6OQrH2jlkux+YDX14xIAV1Za3jzdI oXAKQ6qjx/T1bjqnl6xRUtZG6aN0zmKjPNcgrMdvOLwa0bh6Ow4allCIgzMJ5Dci20jb 5tYh4p9apTX873cX7cNjUS3PWkwKVSHpbLQuzYbq7lyEMTrHdUz5Ei89Oxk8YuSipj2j tQOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Lldld8jjzK1YUD74wLgYBhjsFuiTTNxknlUsVMm/sL4=; b=LD3MVADwG6ylNrBFVv9gdstkTee2Pj8YLxoL3bZchUZ7AUJyUEfAvCvXK0Y2Tr/6SR VW85HPxGGWcFfAZxMRanFliiGvfrbYzrkViF4A02OelcrVIn7fP5U8IY1r9w7+i2Rvm0 MWzr+20tS8Ezvw1YDo126tGLbxQravBoej4+/bka/0IgXnlgSQVh0cr1pj4Vu5BxKvk/ 8LiWbNZmn+VAqpEcEsqYAWkARk+g0+pv9x5/CVIHQHxrqi9Qb7Dv92uGtmGn2g98e2BR 6sUqCmWMUpKIw2gkZE0YKvqkJTMc1uPwVC9mZa2e/9d2hfUE0IDO5JM8XbIg7czFJprE j5UA==
X-Gm-Message-State: AOAM5313/dMQRKQ7Od04zXGq9Mi1if09IMy31xYB7Tlqi1OXWWz5j1AS 6w/jChao9Yl02yAdXl4UiItgRWbPMsCCleUu2P4=
X-Google-Smtp-Source: ABdhPJz2dltajpLctHe/GDf3cTGJE5/nGMgPUV6GW6U5TED4meX1ybpn0a6nKBgR4/VSYyETlSQ4MMCVDl+tFb6rxhw=
X-Received: by 2002:a63:4903:0:b0:3c3:daa:c417 with SMTP id w3-20020a634903000000b003c30daac417mr24628114pga.543.1652350185546; Thu, 12 May 2022 03:09:45 -0700 (PDT)
MIME-Version: 1.0
References: <CA+ag07ZZ2d=+MowReFGfb-RLhCDc4b+2RistAeDQrjfd+091HQ@mail.gmail.com> <87r1524su2.wl-jch@irif.fr>
In-Reply-To: <87r1524su2.wl-jch@irif.fr>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Date: Thu, 12 May 2022 12:09:34 +0200
Message-ID: <CA+ag07agOBjZaQ5s6evrjOri64+txA36OtKexRPJaWadCjm5CA@mail.gmail.com>
To: Juliusz Chroboczek <jch@irif.fr>
Cc: WISH List <wish@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000daa6f205decdc16d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/7bel0kTOs_Tx8q1vXIqo6GlSwZM>
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: Thu, 12 May 2022 10:09:48 -0000

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