Re: [aqm] Obsoleting RFC 2309

gorry@erg.abdn.ac.uk Thu, 03 July 2014 07:55 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 654441A01BE for <aqm@ietfa.amsl.com>; Thu, 3 Jul 2014 00:55:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.852
X-Spam-Level:
X-Spam-Status: No, score=-4.852 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.651, SPF_PASS=-0.001] autolearn=ham
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 ecejJysAfx0l for <aqm@ietfa.amsl.com>; Thu, 3 Jul 2014 00:54:56 -0700 (PDT)
Received: from spey.erg.abdn.ac.uk (spey.erg.abdn.ac.uk [139.133.204.173]) by ietfa.amsl.com (Postfix) with ESMTP id 4149A1A008D for <aqm@ietf.org>; Thu, 3 Jul 2014 00:54:56 -0700 (PDT)
Received: from www.erg.abdn.ac.uk (blake.erg.abdn.ac.uk [139.133.210.30]) by spey.erg.abdn.ac.uk (Postfix) with ESMTPSA id BAD1E2B40E1; Thu, 3 Jul 2014 08:54:54 +0100 (BST)
Received: from 212.159.18.54 (SquirrelMail authenticated user gorry) by www.erg.abdn.ac.uk with HTTP; Thu, 3 Jul 2014 08:54:54 +0100
Message-ID: <2de4d08c1dff0eca315203f8d801e660.squirrel@www.erg.abdn.ac.uk>
In-Reply-To: <20140702220313.GG85889@verdi>
References: <53B327C0.6020407@mti-systems.com> <528D6422-868A-4CEC-AE7A-8B0C3E78EE77@cisco.com> <E77D06A7-D0F9-435D-ADD8-FA6082AD994D@cisco.com> <20140702220313.GG85889@verdi>
Date: Thu, 03 Jul 2014 08:54:54 +0100
From: gorry@erg.abdn.ac.uk
To: John Leslie <john@jlc.net>
User-Agent: SquirrelMail/1.4.22
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Archived-At: http://mailarchive.ietf.org/arch/msg/aqm/NLn8LTNZhqMIpmZp9mTtpVbjps4
Cc: "aqm@ietf.org" <aqm@ietf.org>
Subject: Re: [aqm] Obsoleting RFC 2309
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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, 03 Jul 2014 07:55:00 -0000

Just to keep people on the same page, the latest version is -06.

> Fred Baker (fred) <fred@cisco.com> wrote:
>> On Jul 1, 2014, at 5:24 PM, Fred Baker (fred) <fred@cisco.com> wrote:
>>
>> As I said yesterday, I am scratching my head on what it means to
>> "obsolete" or "update" a document, and how that might relate to this
>> note.
>
>    Fred is not alone! The IESG keeps coming back to that!
>
I think we need AD advice on this.

>> To my small mind, if I have a specification that updates another
>> specification, I have to read the older specification, and then
>> I have to read the newer one and do what it says in the part of the
>> older that it updates. If one specification has obsoleted another,
>> the older specification is only of historical interest.
>>
>> When I said that in private email, John replied
>> "That is correct -- iff you are setting out to implement the older
>> spec."
>
>    Exactly. If you are implementing the newer spec, you have to read
> the older one if, and only if, it is listed among the Normative
> References.
>
>    At the time I wrote that, it didn't occur to me that anyone today
> would be told to "implement 2309".
>
>> The only reason I would have to not implement the older spec is if
>> it were obsolete. It is was merely updated, I am by definition
>> implementing the older spec, with some changes.
>
>    This confused me at the time... It still confuses me.
>
>> Let me give you an example. If I decide to implement TCP, I start with
>>
>> https://tools.ietf.org/html/rfc0793
>> 0793 Transmission Control Protocol. J. Postel. September 1981.
>>     (Format: TXT=172710 bytes) (Obsoletes RFC0761) (Updated by RFC1122,
>>     RFC3168, RFC6093, RFC6528) (Also STD0007) (Status: INTERNET
>> STANDARD)
>>
>> and also read 1122, 3168, 6093, and 6528. Those clean up some basic
>> stuff, add ECN, change Urgent, and add a variant on a SYN Cookie.
>> If I don't do those, I haven't got a correct implementation of TCP.
>
>    (Many folks claim to have a "correct implementation of TCP" without
> implementing all those. :^( We have no way of policing this -- but we
> do from time to time try to produce a TCP-roadmap kind of document.)
>
>> But I was setting out to implement the protocol defined in RFC 793,
>> TCP. Those documents updated 793.
>
>    (TCP, IMHO, is the worst case among RFCs!)
>
>> However, if I decide to implement
>>
>> https://tools.ietf.org/html/rfc5681
>> 5681 TCP Congestion Control. M. Allman, V. Paxson, E. Blanton.
>>     September 2009. (Format: TXT=44339 bytes) (Obsoletes RFC2581)
>>     (Status: DRAFT STANDARD)
>>
>> I don't have to read RFC 2581. Everything that was in 2581 that I
>> need to know will be found in 5681. I'm only implementing 5681,
>> not 2581. I might read it for interest's sake, or as a historian,
>> but as an implementor it is unnecessary.
>
>    The same would be true if 5681 merely updated 2581 but didn't list
> it as a normative reference. (Of course, if 5681 weren't a DRAFT
> STANDARD it might not be succeptible to implementation under those
> conditions.)
>
>    But what Fred says is correct.
>
>    It's just that "implementing AQM-REC" has a defined meaning,
> while "implementing 2309" is hopelessly vague -- since 2309 mostly
> discusses research, and only lists RED as an example.
>
So this an RFC that is informational, but, t does recommends use of RED as
THE way to do AQM. If people support this as the current recommendation -
then they should speak, this is not the consensus I hear.

>> If I understand him correctly, one of the things John is pushing back
>> on is obsoleting RED as an algorithm;
>
>    I am saying that obsoleting RED seems premature.
>
We've been through this several times, and the new draft does not do this.
The intention was to remove the recommendation that RED is THE way to do
AQM.

>> his view, if I understand it, is that if you can figure out what
>> parameters to give RED, it works just fine.
>
>    I'm saying that's a widespread belief.
>
I'm suggesting this is consistent with the intention of the new document.
I for one would be happy to edit if we have a specific proposal of a
change.

>> On that point, I would generally agree; in my experience, RED has
>> two important parameters, which are min-threshold and max-threshold.
>> The mean latency through a queue will generally be governed by and
>> approximate min-threshold, so one wants to set it just deep enough
>> to accomplish ones latency goals, and max-threshold is derived from
>> the underlying hardware.
>
>    Yes, but actually my point is that folks are shipping varieties of
> RED; and we're unlikely to change that by any classification of 2309.
>
Indeed - but same point: I do not see what you write as the intention of
the new BCP. We are speaking here in my mind about the recommendation that
RED is the best current practice.

>> However, the operational commentary on RED in twvarea, tsvwg, and
>> over time has been that "just deep enough to accomplish ones latency
>> goals" is fuzzy enough to be difficult to use.
>
>    I absolutely agree!
>
>> CoDel was developed, in part, to make the latency goal an explicit
>> algorithmic factor; if part of the delay in a transmission system is,
>> for example, channel acquisition delay (think about the behavior of
>> busy conference WiFi systems), it would be nice to have that factored
>> into the calculation as well as actual queue depth (which is
>> corollary to but not necessarily indicative of latency).
>
>    I agree on the goals, and agree that CoDel was a step in that
> direction.
>
>> Other algorithms, of which PIE is an example, work with queue depth
>> as a corollary to latency, and adjust their understanding of the
>> relationship dynamically.
>
>    Agreed.
>
>> Gorry and I have separately commented, in that private conversation,
>> that obsoleting RFC 2309 doesn't obsolete RED as an algorithm,
>> nor does it say that RED is a bad algorithm. It replaces the
>> recommendation of 2309, which is that
>>
>> o  RECOMMENDATION 1:
>>
>>  Internet routers should implement some active queue management
>>  mechanism to manage queue lengths, reduce end-to-end latency,
>>  reduce packet dropping, and avoid lock-out phenomena within the
>>  Internet.
>>
>>  The default mechanism for managing queue lengths to meet these
>>  goals in FIFO queues is Random Early Detection (RED) [RED93].
>>  Unless a developer has reasons to provide another equivalent
>>  mechanism, we recommend that RED be used.
>
>    More exactly, AQM-REC replaces that (whether or not 2309 is
> obsoleted).
>
>> 16 years following the publication of RFC 2309, it turns out that we
>> have issues, but the issues are not the management of queue lengths,
>> reduction of packet dropping, and avoidance of lock-out phenomena
>> within the Internet.
>
>    I'm not sure I agree there -- but the problems certainly _have_
> changed and we ought to describe at least some of the changes.
>
If you do not agree, could you propose new text?

>> RED, by the way, never did reduce packet loss; it drops the same
>> number of packets, but attempts to desynchronize them and achieve
>> a certain goal using them.
>
>    A perfect example of why we want to avoid AQM-REC being 2309bis.
> A 2309bis would have to discuss this!
>
>> What we *are* trying to do is reduce queuing delay and by extension
>> that component of end to end latency.
>
>    I completely agree.
>
>> And it turns out that there are now better algorithms than RED.
>
>    I also agree there -- I'm just not convinced we're ready which
> to recommend.
>
To understand this comment, I think it is useful to know which
recommendation(s) you have questions on?

>> I would go one step further here, and whether this comment belongs in
>> the draft or not is not important to me. There are two reasons one
>> might standardize something. The most common one, and the one that
>> motivates most IETF work, is interoperability of separate
>> implementations that have to communicate. OSPF and IS-IS, for example,
>> need to be specified down to the gnat's eyelash, including the
>> "alternate Tuesday rules" that make different implementations make
>> the same choice when more than one choice could reasonably and
>> validly be made, to guarantee interoperability.
>
>    Yes.
>
>> That consideration doesn't apply here; TCP will interpret signals
>> from the network including ECN and packet loss even if the network
>> doesn't realize that they are signals. The only requirement that
>> could be described using the term "interoperability" is that the
>> TCP/SCTP/whatever receiving the signals should as a result do the
>> right thing.
>
>    There are bunches of things within TCP where interoperation is
> a matter of hoping for the best. :^( But standardizing several of the
> possible choices still helps.
>
>> The other is so that everyone agrees on what an algorithm does, why
>> it does it, and where it should be implemented.
>
>    (Fred is an optimist! ;^)
>
>> BCP 38, for example, can be implemented in several ways, but because
>> it is standardized as a recommendation, we know what we are trying
>> to achieve when we implement it.
>
>    Yes, even this helps.
>
>> What we are obsoleting, at minimum, is the recommendation that RED
>> be the default algorithm. What we instead recommend is that each
>> implementation implement some form of AQM to achieve certain purposes.
>
>    IMHO that's already done, even if we neither obsolete no update 2309.
>
>> That statement alone could be an update to 2309 if 2309 made its
>> recommendation regarding RED in one place. However, it is throughout
>> the document. Hence, a change to 2309's statement regarding RED is
>> a pervasive change affecting every section of it.
>
>    It doesn't matter how pervasive the change -- it only matters that
> the intent of the update is stated clearly enough.
>
>> The other thing I think John is trying to preserve - and John, I'm
>> looking for your correction here - is 2309's report on research.
>
>    I do believe that that report deserves to be preserved. I see no
> reason to declare it obsolete. But my concern is that we avoid the
> rathole of trying to update it while obsoleting 2309 itself.
>
Well that I thought was the intention.

>> There has been ongoing research since 2309 was written, but a large
>> portion of the relevant research predates and is reported in 2309.
>
>    Agreed.
>
>> So we have been asked for an updated bibliography in this document,
>
>    I'm _really_ tempted to "Just say No!" here. Such an updated
> bibliography would indeed be useful, but its utility doesn't depend
> on doing it here; and it feels like part of that rathole I want to
> avoid.
>
>> and the updates haven't been as large as one might expect from an
>> active research field.
>
>    Are you surprised?
>
>> I think John would like to continue to point to 2309's description
>> of the motivating and underlying research.
>
>    Yes.
>
>> On that, I go two ways. First, as a historical review of the research
>> the original recommendation was based on, 2309 is unsurpassed.
>> Second, I think we do need to motivate the updated recommendations
>> we make, which include for example the implementation of ECN. For
>> that reason, we need to point to at least some research.
>
>    Indeed! But it isn't the same research "updated bibliography" implies.
>
>> We have been asked, by the proponents of fq_codel, to also mention
>> scheduling. 2309 left that out and said why it left that out.
>
>    This is an area for "Send text!"
>
>> draft-baker-aqm-sfq-implementation is my further reflections on the
>> interaction between scheduling, which has to do with the distribution
>> of service across competing sessions, and AQM, which has to do with
>> latency; they two don't necessarily get along as well with each other
>> as one might expect.
>
>    (My expectations were pretty low to start with! ;^)
>
>> In this document, we have tried to say that we don't have a problem
>> with scheduling implementations, but we think AQM might be applied
>> differently to different traffic classes in the same queuing system.
>
>    Talking "scheduling" _will_ confuse that CTO...
>
>> draft-geib-tsvwg-diffserv-intercon, for example, contemplates four
>> traffic classes, one of which is engineered to RFCs 3246/3247,
>> one of which allows for a shallow queue without AQM for UDP-based
>> applications, one of which allows for a deeper queue with AQM for
>> "preferred" elastic traffic, and one of which is simply the default
>> class, which one might expect AQM in but would bear the brunt of
>> traffic loss should it occur.
>
>    I don't think we're prepared to say very much about that...
>
>> To my mind, we're going quite a bit further than "just remove RED";
>> we are doing things 2309 said it didn't want to do, and adding
>> capabilities that 2309 didn't consider.
>
>    And I agree we should be doing that.
>
>> In any event, RFC 2309 remains in the historical record, which is to
>> say the RFC series. It's a great document. But when we send someone
>> to figure out what to implement in an AQM implementation, I don't
>> think we are going to send them there.
>
>    It would be strange to send anyone to a 16-year-old Individual
> Informational RFC instead of an IETF BCP.
>
>> This document, plus the set of algorithms that we wind up recommending,
>> are a complete replacement.
>
>    I don't think AQM-REQ version -05 quite makes it there. And I want
> to stop trying.
>
What about version -06?

>> So I don't see it as an update. I see it as making 2309 "historical"
>> or "obsoleted by" this document.
>
>    Those are different categories. "Historical" is typically handled by
> an IESG management item nowadays. "Obsoleted-by" implies that everything
> of current importance is covered in the new document. Personally, I
> wouldn't try for that.
>
>    But once AQM-REC is published as a BCP, I certainly wouldn' oppose
> an IESG management item to move 2309 to "historic".
>
>> ----------------------------------------------------------------------------
>>
>> Which brings me back to John's proposed text. I'm frankly curious what
>> the working group's thought on that is. If the working group wants to
>> replace the existing sections 1-3 with that or an updated version of
>> that, so be it. I'm willing to see John added as a co-author or
>> co-editor and the text dropped in. If the working group prefers the
>> existing text, I'm OK with that. If there are glaring holes, they need
>> to be filled in.
>
>    (For many years I resisted authoring an RFC; but I won't resist now.)
>
>    "Glaring", I'm afraid, is in the eye of the beholder. I don't mean
> to bring up holes in AQM-REC as a 2309bis; but others keep mentioning
> them, and they sure look like holes to me. :^(
>
>> What I'm not OK with is a continuation of the current dinking with
>> the document. I don't think we have dramatically improved the document
>> since last November,
>
>    I'm mostly with Fred here: I _want_ to stop dinking with it!
>
>> although we have done a lot of work on it to respond to working group
>> comments. It feels to me like we, as a working group, have lost our
>> way. From this point on, *I* think we need to ask ourselves whether
>> any given change we make materially improves the document or merely
>> dinks with the text. And we should limit changes to material
>> improvements.
>
>    I mostly agree. That's why I'm proposing a material change in approach,
> to greatly reduce the area for dinking.
>
> --
> John Leslie <john@jlc.net>
>
> _______________________________________________
> aqm mailing list
> aqm@ietf.org
> https://www.ietf.org/mailman/listinfo/aqm
>
---

Gorry