Re: [aqm] Spencer Dawkins' Yes on draft-ietf-aqm-fq-codel-05: (with COMMENT)

Toke Høiland-Jørgensen <toke@toke.dk> Thu, 17 March 2016 17:08 UTC

Return-Path: <toke@toke.dk>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8FF5C12DC75; Thu, 17 Mar 2016 10:08:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=toke.dk
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 mwQkzlLSmzcU; Thu, 17 Mar 2016 10:08:19 -0700 (PDT)
Received: from mail2.tohojo.dk (mail2.tohojo.dk [77.235.48.147]) (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 0DAEB12DC71; Thu, 17 Mar 2016 10:07:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at mail2.tohojo.dk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=201310; t=1458234442; bh=AsMswBGV1VzW3Rop3XUk/r7+QuSIcwslASuj4sTyxGg=; h=From:To:Cc:Subject:References:Date:In-Reply-To; b=ev56LC3S+zPZl/2d9u0w+m3jNj6GyBKW2jc51d4bo67CsRMO7uryqgTws3zRwmFzv mqMSvOYkk84KCXhN6PXuc5eatFoqamJ33QcolrAs/Bae1BcHD/s3AcUdJbPjPLP2rH Pkp3KaakqN6vcTiXSuI+jz5IbfXFUYmLlYBfZ5PU=
Sender: toke@toke.dk
Received: by alrua-desktop.borgediget.toke.dk (Postfix, from userid 1000) id 81992311CB; Thu, 17 Mar 2016 18:07:21 +0100 (CET)
From: Toke Høiland-Jørgensen <toke@toke.dk>
To: Spencer Dawkins <spencerdawkins.ietf@gmail.com>
References: <20160316183339.27515.73259.idtracker@ietfa.amsl.com>
Date: Thu, 17 Mar 2016 18:07:21 +0100
In-Reply-To: <20160316183339.27515.73259.idtracker@ietfa.amsl.com> (Spencer Dawkins's message of "Wed, 16 Mar 2016 11:33:39 -0700")
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <874mc5yqwm.fsf@alrua-desktop.borgediget.toke.dk>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/0029z6KvX-bjKF1l0OI_wRwGfts>
Cc: wes@mti-systems.com, draft-ietf-aqm-fq-codel@ietf.org, aqm@ietf.org, The IESG <iesg@ietf.org>, aqm-chairs@ietf.org
Subject: Re: [aqm] Spencer Dawkins' Yes on draft-ietf-aqm-fq-codel-05: (with COMMENT)
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <aqm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/aqm>, <mailto:aqm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/aqm/>
List-Post: <mailto:aqm@ietf.org>
List-Help: <mailto:aqm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/aqm>, <mailto:aqm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Mar 2016 17:08:26 -0000

"Spencer Dawkins" <spencerdawkins.ietf@gmail.com> writes:

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Very nice work. I have some nit-ish questions I hope you'll consider,
> but nothing blocking.

Hi Spencer

Thank you, and thank you for your comments. I've updated the text to
account for them; the updated version is currently available here:
https://kau.toke.dk/ietf/draft-ietf-aqm-fq-codel-06.html (or .txt), and
I'll post it to the IETF tracker once I'm sure I have covered all the
review comments.


> This text in the Introduction,
>
>    The FQ-CoDel algorithm is a combined packet scheduler and AQM
>    developed as part of the bufferbloat-fighting community effort.  It
>    is based on a modified Deficit Round Robin (DRR) queue scheduler,
>    with the CoDel AQM algorithm operating on each queue.
>
> introduces both CoDel and DDR, but they don't have references until
> Section 1.3. Maybe move that forward in the doc?

This has been fixed.

> Perhaps this text:
>
>    FQ-CoDel stochastically classifies incoming packets into different
>    queues by hashing the 5-tuple of IP protocol number and source and
>    destination IP and port numbers, perturbed with a random number
>    selected at initiation time (although other flow classification
>    schemes can optionally be configured instead). 
>
> would benefit from a forward reference to Section 4.1.1?

You're right; added the forward reference.

> Just as a nit, you have an "is is" in Section 3.

Yup, you're not the first one to notice; fixed :)

> In this text:
>
>    After having selected a queue from which to dequeue a packet, the
>    CoDel algorithm is invoked on that queue.  This applies the CoDel
>    control law, 
>
> "CoDel control law" hasn't been introduced, and isn't included in Section
> 1.2. Could you provide a reference or pointer?

I've updated the text to explain what the control law does, and point to
the CoDel draft. The full paragraph now reads:

    After having selected a queue from which to dequeue a packet, the
    CoDel algorithm is invoked on that queue. This applies the CoDel
    control law, which is the mechanism CoDel uses to determine when to
    drop packets (see [I-D.ietf-aqm-codel]). As a result of this, one
    or more packets may be discarded from the head of the selected
    queue, before the packet that should be dequeued is returned (or
    nothing is returned if the queue is or becomes empty while being
    handled by the CoDel algorithm).

> In this text:
>
>    This parameter can be set only at load time since memory has to be
>    allocated for the hash table in the current implementation.
>
> if "in the current implementation" refers to "can be set only at load
> time", 
>
>    This parameter can be set only at load time in the current
> implementation,
>    since memory has to be allocated for the hash table.
>
> might be clearer.

I agree. Fixed.

> I wonder if 
>
>    while CoDel itself can take a while
>    to respond, fq_codel doesn't miss a beat.
>
> is clear to non-native English language readers?

That was already changed to read "while CoDel itself can take a while to
respond, FQ-CoDel reacts almost immediately".

> In this text:
>
>    In the presence of queue management schemes that contain latency
>    under load, 
>
> "contain" means something like "limit" right? That wasn't what I
> understood in my first parsing attempt.

I see what you mean. Changed 'contain' to 'limit'.

> I'm confused by this text:
>
>    o  Packet fragments without a layer 4 header can be hashed into
>       different bins than the first fragment with the header intact.
>       This can cause reordering and/or adversely affect the performance
>       of the flow.  Keeping state to match the fragments to the
>       beginning of the packet, or simply putting all fragmented packets
>       into the same queue, are two ways to alleviate this.
>
> Is this "all fragmented packets", or "all packet fragments"?
>
> If it's "all fragmented packets", don't you have to reassemble the
> fragments? 
>
> If it's "all packet fragments", the packet fragments would all be
> transmitted in order, but could the fragments with headers and without
> headers of a single packet be reordered?

It's the latter. Updated the text to read "Keeping state to match the
fragments to the beginning of the packet, or simply putting all packet
fragments (including the first fragment of each fragmented packet) into
the same queue, are two ways to alleviate this."

> Do we say things like 
>
>    In this document we have documented the Linux
>    implementation in sufficient detail for an independent
>    implementation, and we encourage such implementations be widely
>    deployed.
>
> in Experimental RFCs?

Apparently not, as others have pointed out. Fixed :)

-Toke