Re: [Wish] Use entity-tags for solving out of order PATCH requests

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Thu, 03 March 2022 12: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 0AF6F3A087D for <wish@ietfa.amsl.com>; Thu, 3 Mar 2022 04:09:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.107
X-Spam-Level:
X-Spam-Status: No, score=-7.107 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, 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 (2048-bit key) header.d=gmail.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 3x4enk5wWjTy for <wish@ietfa.amsl.com>; Thu, 3 Mar 2022 04:09:43 -0800 (PST)
Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) (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 7109E3A0872 for <wish@ietf.org>; Thu, 3 Mar 2022 04:09:43 -0800 (PST)
Received: by mail-pg1-x536.google.com with SMTP id 27so4324349pgk.10 for <wish@ietf.org>; Thu, 03 Mar 2022 04:09:43 -0800 (PST)
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=qdgwyjPyEKIGwU+Z2fr0lV6NbbmGI/jSd+Z88zRRm70=; b=OmalE9LMlho8+bKL3NsUggp7MHDc7PakNHE91so+48O5J8LsWMI/KzPAsmhUQyV0Dy xeGdqCKuCbODgOH7y0kQ+1Uxnx4YRjnfwlS5HZkYJK9EdIFy/bF+nLDwBXC653QZgxii EYhDaVgmWY9PBrYvkiqo1lcRvGTLYH1LQJRWHbT+X6nypPrvpE4MB69exPDcNb6/RuNK lafKGoq4BEvTLZFZB5G6PqdreIom75zbYYzHbcbbT9nt0NXgju7mFbaEsZtS9dqtRx7C ze+l8tPq6rIxDZ0Vz6bTr8HlxxxISYgVqh2tZM8e6YoCQOfg9UFS39XdWMTBMpg6PgV0 GknQ==
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=qdgwyjPyEKIGwU+Z2fr0lV6NbbmGI/jSd+Z88zRRm70=; b=E1aeXa1lLMmDLSCUm7uIInCFqhVDx34RVoyDvDNsgmtw4x0R7fimMgl9MFGBG4ItX6 6451rK7qjH2KfBPoOQUGDWBmE0LeraWjzUZ2D8gfw4AHGchaVNL/IuUFhwka4TOVsXPb 3L9az6rEZEUlgj2RueVW7Xl8ke4bepzNJAIZzWL7LPUK8cGf53DbYYflK31scX4u5BT9 3eROsdwzZ6oQ+7oJu21yrycWdl/pBJyjVXtFy8e5QSu8rrNXf+a39eSlepebk9nNMS6W YCHIny5ewKN2ZDdcsqLTAFCpmSP/Wki/78GMrhc2thVA6FGgZ/YSV4zTnTfLE88sPt2z hxiQ==
X-Gm-Message-State: AOAM5310f3DDOGq/9xLDvGSe/r4UxA7TpF6QgPtTfyf4Ium2JVS40kot q8jnJoCP5P9V9+OIsQTwYDsi39Ay9BMwY2rBSQk=
X-Google-Smtp-Source: ABdhPJwjmpei7uUCYwm2yZ7Th0r0YeyznEcCZ3ouGzgaCG8oBlqN9DXB5KtqYdxRGxfMxYPC24rQiIwQryRnqoygCT8=
X-Received: by 2002:a05:6a00:244b:b0:4c9:319e:ecb7 with SMTP id d11-20020a056a00244b00b004c9319eecb7mr37713830pfj.58.1646309382213; Thu, 03 Mar 2022 04:09:42 -0800 (PST)
MIME-Version: 1.0
References: <CA+ag07bXRH9en5rWg3FBXOFp4OCz1N5HtpyK6+nbjycj1jkTaA@mail.gmail.com> <87ee3juvgx.wl-jch@irif.fr>
In-Reply-To: <87ee3juvgx.wl-jch@irif.fr>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Date: Thu, 03 Mar 2022 13:09:32 +0100
Message-ID: <CA+ag07Zet4ZKV2BvasSaPtb70db9pE7eT3GNONh7bz0gTd9urw@mail.gmail.com>
To: Juliusz Chroboczek <jch@irif.fr>
Cc: WISH List <wish@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ead63a05d94f45a8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/4wx3K3v0vIVqaP8pTSEQcL9vc-k>
Subject: Re: [Wish] Use entity-tags for solving out of order PATCH requests
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, 03 Mar 2022 12:09:57 -0000

On Thu, Mar 3, 2022 at 12:27 PM Juliusz Chroboczek <jch@irif.fr> wrote:

> Thanks a lot for your work, Sergio.  I think I got it now.
>
> 1. Would you consider adding guidance for server implementers about how to
> generate the ETag ?  For example, something like
>
> "The ETag could, for example, be generated by appending the ICE ufrag with
>  the ice password, or by using the timestamp of the last ICE restart."
>
> (I'm not very familiar with HTTP, but it is my understanding that a strong
> ETag must be unique over the lifetime of a resource.  I'm not quite sure
> what a resource is, and I'm not sure what data can be used to guarantee
> the properties of the ETag that are required by HTTP.  I'm sure I'm not
> the only person who would find such guidance useful.)
>

I am not sure if it is a good idea to put a guide for implementation, as
the entity-tag is an opaque value and I don't want the client side to make
any assumptions about its semantics. A simple incremental number would
work, or a uuid v4, or a timestamps with ms accuracy, or just the full ice
username.


>
> 2. Could you please spell out explicitly how the server distinguishes
> between restarts and candidates?  My understanding is that one says
> "If-Match: "*"" while the other carries a strong ETag, but I'd like to see
> it spelled out explicitly.
>

No, the differentiating between the ice restarts and tricke ice has to be
done by checking the ice username/password on the sdp fragment. Now that we
can outdated past tricke ice candidate request it should be just a matter
of checking if the username and fragment corresponds to the stored ones.


>
> 3. What should a server do if it cannot parse a candidate (say, the client
> sends an mDNS candidate, and the server doesn't implement mDNS, or the
> server is IPv6-only and the client sends an IPv4 candidate).  Should it
> return success and ignore the candidate, or should it return an error?  If
> so, which one?
>

The server should always report a 204 No content if the body has the
correct syntax and return standard 400 Bad request error codes if the body
is invalid. If the candidate is not supported (mDNS or ipv6 for
example)  the server should just silently ignore it. Do you feel that this
should go into the spec?


> 4. What should the server do if restarting ICE fails?  Should it ignore
> the restart and return the same ETag as before, should it return an error
> to the client and continue with the previous ICE generation, or should it
> return the error and close the RTP stream (with RTCP BYE)?
>

How would the ice restart fail?



>
> -- Juliusz
>