[quicwg/base-drafts] Pseudo code issue (#1724)
Lars Eggert <notifications@github.com> Wed, 05 September 2018 12:15 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 2E53C130E1A for <quic-issues@ietfa.amsl.com>; Wed, 5 Sep 2018 05:15:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 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_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 UQDUmGnCWzY8 for <quic-issues@ietfa.amsl.com>; Wed, 5 Sep 2018 05:15:35 -0700 (PDT)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8BB25126F72 for <quic-issues@ietf.org>; Wed, 5 Sep 2018 05:15:35 -0700 (PDT)
Date: Wed, 05 Sep 2018 05:15:34 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1536149734; bh=0n3Tk1tsAXXV5Tzu3eib8zxzw6Zo0LwRuQkpKCcBQ/4=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=ZOgG6XF3Pfy/P73GE6t8HimDSItuphvfbLN6pRHahDK26e3JCqYV6eQGoD/4OVXM0 CLaSglhoxusLadiD9TbRZlQanluNYKI1vw+W9lPMGMkI0tPqGRixIi5+s8BOSh+lmp Jnp6IogBNxfJyGan+CpmO9QJTojkOlNoaxmfyqGs=
From: Lars Eggert <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab6cfaf3ce1329940aa5871f11d928b181bc51243e92cf0000000117a78ae692a169ce154a73d6@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1724@github.com>
Subject: [quicwg/base-drafts] Pseudo code issue (#1724)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b8fc8e6a57d0_7fe03f7fd9ed45c049366"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: larseggert
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/pAA79Ln_OoW9b1DPd0jMgdLUX7o>
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: Wed, 05 Sep 2018 12:15:43 -0000
i think there is an issue in the pseudo code (but I may be wrong - I find the code much more difficult to follow than an actual textual explanation.)
In `OnAckReceived`, there is the following call sequence:
```
DetectLostPackets(ack.largest_acked_packet)
SetLossDetectionTimer()
```
`DetectLostPackets` calls `OnPacketsLost`, which reduces `in_flight` potentially to zero. Then in `SetLossDetectionTimer`, the timer is cancelled via `loss_detection_timer.cancel()`.
This causes no retransmissions to happen, at least when (blindly) implementing the pseudo code.
Related to that, it is not clear where exactly the pseudo code expects actual retransmissions to happen. There is code in `OnLossDetectionTimeout` (`RetransmitAllUnackedHandshakeData`, `SendOnePacket`, `SendTwoPackets`) but what those do is not explained. There is also a comment in `DetectLostPackets` ("Inform the congestion controller...") but it remains unclear when and how that would lead to retransmissions.
IMO, if we rely on pseudo code for this document, it needs a lot more work to make sure it actually does what is intended. (My preference would be to instead describe the concepts in text.)
--
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/1724
- [quicwg/base-drafts] Pseudo code issue (#1724) Lars Eggert
- Re: [quicwg/base-drafts] Pseudo code issue (#1724) MikkelFJ
- Re: [quicwg/base-drafts] Pseudo code issue (#1724) mirjak
- Re: [quicwg/base-drafts] Pseudo code issue (#1724) mirjak
- Re: [quicwg/base-drafts] Pseudo code issue (#1724) Lars Eggert
- Re: [quicwg/base-drafts] Pseudo code issue (#1724) ianswett
- Re: [quicwg/base-drafts] Recovery "what to send s… Martin Thomson
- Re: [quicwg/base-drafts] Recovery "what to send s… ianswett
- Re: [quicwg/base-drafts] Recovery "what to send s… ianswett