Re: [quicwg/base-drafts] Invalid Push ID error codes (#2818)

Lucas Pardue <notifications@github.com> Fri, 21 June 2019 09:37 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EFFF412027A for <quic-issues@ietfa.amsl.com>; Fri, 21 Jun 2019 02:37:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Level:
X-Spam-Status: No, score=-8.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 Knj3llehAg-x for <quic-issues@ietfa.amsl.com>; Fri, 21 Jun 2019 02:37:13 -0700 (PDT)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8441D1202B3 for <quic-issues@ietf.org>; Fri, 21 Jun 2019 02:37:10 -0700 (PDT)
Date: Fri, 21 Jun 2019 02:37:07 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1561109827; bh=pJPH+C1UIJ0d2AekGI+MHvLBnaFDP6VPLEUoEWFykqU=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Ph0RizckX9vDSXgPD+S8q4k39JbDehHfd6DH6pHSHF9sacmyxT0nOAu+r94QJyjMF 9xAInxBf5u9TluhSKzMnbcBQuVQEtxKNZoIiet7eSBxZdbSlDfVp5dUTHMuB3MF4ek zOEIu6unZledWPRiCVhnrIkWbsFpfgZ903vOF8DQ=
From: Lucas Pardue <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK5ZGQXMQOR2P2ZTPI53DHL4HEVBNHHBWVZWUQ@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2818/504362218@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2818@github.com>
References: <quicwg/base-drafts/issues/2818@github.com>
Subject: Re: [quicwg/base-drafts] Invalid Push ID error codes (#2818)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d0ca543bf6af_30703f9ac5ccd96428449d"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: LPardue
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/DEMa2-AtqbwcTLjHIlMI7ev8AyQ>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 21 Jun 2019 09:37:22 -0000

Thanks @kazuho. The proposal is a bit of a compromise, so I agree with some of the points that you make.

I like your idea of replacing HTTP_LIMIT_EXCEEDED with HTTP_ID_ERROR. I think it solves the issue in the most general way and doesn't change the protocol mechanics.

What follows is the response I made first, before coming to that agreement :)

> To me it seems that having an error code for specific part of push (i.e. ID of push-related information being incorrect) a bit too detailed. I think it sticks out, because we do not have things like PLACEHOLDER_ID_ERROR, STREAM_ID_ERROR.

Right. The difference here is that H3 frames only reference the stream and placeholder ID spaces, they don't control them. So, if the peer references an ID that doesn't exist then respond with HTTP_LIMIT_EXCEEDED.

Multiple references to the same ID is a little different, its ok to reuse placeholder ID (as long as the above condition holds, and you create a semantically valid PRIORITY frame). The transport spec discusses reuse of stream IDs at that layer; in H3 we only use stream ID for PRIORITY and GOAWAY - this has similar restrictions.

However, server push is a little different because it's ID space is managed by the MAX_PUSH_ID frame. The three errors that use HTTP_PUSH_ID_ERROR are unique to push. However, if we modified HTTP_LIMIT_EXCEEDED to cover exceeding limits and incorrect ID usage (call it HTTP_ID_ERROR) I think that would work.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2818#issuecomment-504362218