[Wish] Implementation report for draft-ietf-wish-whip-00
Juliusz Chroboczek <jch@irif.fr> Thu, 09 September 2021 16:19 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 ED4253A1B8E
for <wish@ietfa.amsl.com>; Thu, 9 Sep 2021 09:19:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001]
autolearn=ham autolearn_force=no
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 w7eEQJPU_TIn for <wish@ietfa.amsl.com>;
Thu, 9 Sep 2021 09:19:20 -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 2764A3A1B98
for <wish@ietf.org>; Thu, 9 Sep 2021 09:19:11 -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
189GJ8vg020869
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO)
for <wish@ietf.org>; Thu, 9 Sep 2021 18:19:08 +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
189GJ8Dd023269 for <wish@ietf.org>; Thu, 9 Sep 2021 18:19:08 +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 50E70C9C75
for <wish@ietf.org>; Thu, 9 Sep 2021 18:19:13 +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 Dn-VA1f8pvdQ for <wish@ietf.org>;
Thu, 9 Sep 2021 18:19:11 +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 54812C9C6E
for <wish@ietf.org>; Thu, 9 Sep 2021 18:19:11 +0200 (CEST)
Date: Thu, 09 Sep 2021 18:19:06 +0200
Message-ID: <874kathgcl.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: wish@ietf.org
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]);
Thu, 09 Sep 2021 18:19:08 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7
(potemkin.univ-paris7.fr [194.254.61.141]);
Thu, 09 Sep 2021 18:19:08 +0200 (CEST)
X-Miltered: at korolev with ID 613A33FC.002 by Joe's j-chkmail (http : //
j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 613A33FC.002 by Joe's j-chkmail (http : //
j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 613A33FC.002 from
potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<jch@irif.fr>
X-j-chkmail-Enveloppe: 613A33FC.002 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 : 613A33FC.002 on korolev.univ-paris7.fr : j-chkmail
score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 613A33FC.002 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/KIQced3tawz8edzA-tRGNqgBzxo>
Subject: [Wish] Implementation report for draft-ietf-wish-whip-00
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, 09 Sep 2021 16:19:28 -0000
Hi,
Lorenzo and I have just shown interoperability between his client and my
server. Lorenzo's client was almost perfect, the only issue was that he
was sending ICE candidates to the wrong endpoint. I haven't implemented
ICE restarts yet.
A few preliminary conclusions.
1. Even in its current early form, the draft is good enough to implement.
2. Asymmetric ICE (blocking ICE at the server, trickle at the client) was
surprisingly easy to implement and works quite well. The only issue we
noticed is that since the ICE candidates are sent to the resource
endpoint, the client must buffer ICE candidates until it receives the
initial answer. I think this deserves to be mentioned explicitly.
3. The draft lacks guidance about error handling; for example, it doesn't
tell me what to do if appling the offer fails (500?), if I cannot parse
an offer or an iCE candidate (400?), or if I receive an unexpected HTTP
method or content-type.
A couple tricky ones:
- what is the error to return when I receive an ICE candidate for
a PeerConnection that used to exist but has been closed? I'm
currently doing 404, which means the client cannot easily
distinguish between this case and that of a wrong value for the
resource endpoint.
- what happens if a candidate is followed by random non-JSON garbage?
Is that an error? If so, MUST I return an error or MAY I return an
error? I'm currently just ignoring the garbage.
4. Detection of failed clients, as mentioned in a previous message. It's
a tricky issue, and needs to be specified precisely or people will get
it wrong.
5. As somebody already mentioned, the draft lacks guidance about
authentication. I've implemented HTTP Basic on the WHIP endpoint, and
I'm not sure what I should do on the resource endpoint: require HTTP
Basic in the same realm as on the WHIP endpoint, require HTTP Basic in
a different realm, or assume that the resource endpoint is a well-kept
secret with enough entropy to not require authentication.
Authentication is pretty much application-specific, so I think we'll
need to be careful to provide precise guidance to the client without
overly constraining the server.
-- Juliusz
- [Wish] Implementation report for draft-ietf-wish-… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Lorenzo Miniero
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Lorenzo Miniero
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Lorenzo Miniero
- Re: [Wish] Implementation report for draft-ietf-w… Sergio Garcia Murillo
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Lorenzo Miniero
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Sergio Garcia Murillo
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Sergio Garcia Murillo
- Re: [Wish] Implementation report for draft-ietf-w… Juliusz Chroboczek
- Re: [Wish] Implementation report for draft-ietf-w… Adam Roach