Re: [aqm] floating a draft charter

Jim Gettys <jg@freedesktop.org> Wed, 05 June 2013 13:19 UTC

Return-Path: <gettysjim@gmail.com>
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 A9E5421F9A49 for <aqm@ietfa.amsl.com>; Wed, 5 Jun 2013 06:19:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.75
X-Spam-Level:
X-Spam-Status: No, score=-1.75 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NO_RELAYS=-0.001, SARE_SUB_OBFU_Q1=0.227]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d5ETHqyc6GJ6 for <aqm@ietfa.amsl.com>; Wed, 5 Jun 2013 06:19:43 -0700 (PDT)
Received: from mail-oa0-x22a.google.com (mail-oa0-x22a.google.com [IPv6:2607:f8b0:4003:c02::22a]) by ietfa.amsl.com (Postfix) with ESMTP id 0CD1921F99F8 for <aqm@ietf.org>; Wed, 5 Jun 2013 06:19:42 -0700 (PDT)
Received: by mail-oa0-f42.google.com with SMTP id i10so1114654oag.29 for <aqm@ietf.org>; Wed, 05 Jun 2013 06:19:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=AK6cZR4Nq2O4RIaUtbrJ2B8uIpvLQWrWXe91nDz7Q4c=; b=HqxB3mDSQaEvxK2X3w5jZSH2WpZJhFUs8XkM8oIu3aGluRuGlvxQlaJGnO3JV6oF+l H/YL06fzE26AJfgNjJfTm2Cx7R6gLFWgja8ltyt/owtgyyruZhdwh8pM2r1hxUC29rkd UOuCxDxaVIvik27mqEYPP9DlWkcl+zhsZJWoP9ZNKsLRgI75LVucnil2Kxo9SJqHHv/o BtW86h/2oGZ5oNRiK+JF2tMRbT4gQFtZ72q5f2o8wSsgaYi52VRoXF9k15FIWNgBCUMO AfcD+ras7urS+8xkNNx9rtyo61SwvrgO0j5HE9WkC0s4RFUAgKs6GLRbZmjUwKZL3GBs bzHw==
MIME-Version: 1.0
X-Received: by 10.60.102.230 with SMTP id fr6mr14736375oeb.141.1370438377320; Wed, 05 Jun 2013 06:19:37 -0700 (PDT)
Sender: gettysjim@gmail.com
Received: by 10.76.87.129 with HTTP; Wed, 5 Jun 2013 06:19:36 -0700 (PDT)
In-Reply-To: <51AEFA86.1070802@orange.com>
References: <CAGhGL2DVU4xLXFMeHi75g6MTFehgjNBZkcpKVFb_K0804EKViw@mail.gmail.com> <BF2CBE9A994B89438F7F3B9FD58C2B7F185CD31C@xmb-aln-x15.cisco.com> <CAA93jw54A3iATN9Z5KpwuP2Aq61jY_enQzkwwAWK3d-gWjEWiA@mail.gmail.com> <51AEFA86.1070802@orange.com>
Date: Wed, 05 Jun 2013 09:19:36 -0400
X-Google-Sender-Auth: Y_BQWvZZ-LW9K5ppLhrFOnziycI
Message-ID: <CAGhGL2BACvh-smETMYKT7dtP7jmNpecghsAZc6-aXiJB0exWUQ@mail.gmail.com>
From: Jim Gettys <jg@freedesktop.org>
To: Luca MUSCARIELLO <luca.muscariello@orange.com>
Content-Type: multipart/alternative; boundary="089e011830d6ab04d304de680c6f"
Cc: Wesley Eddy <wes@mti-systems.com>, "Rong Pan (ropan)" <ropan@cisco.com>, Mirja Kuehlewind <mirja.kuehlewind@ikr.uni-stuttgart.de>, Dave Taht <dave.taht@gmail.com>, "aqm@ietf.org" <aqm@ietf.org>
Subject: Re: [aqm] floating a draft charter
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.12
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: Wed, 05 Jun 2013 13:19:45 -0000

On Wed, Jun 5, 2013 at 4:44 AM, Luca MUSCARIELLO <
luca.muscariello@orange.com> wrote:

>
>
> AFAIK, Chipcos for home gateways (Broadcom, Ikanos, Intel), network
> processors (Cavium),
> but also Cisco, Juniper and Alcatel-Lucent make a difference between class
> based queuing and
> dropping algorithms. The first is implemented everywhere in different ways
> and I do not think
> there would be relevant work to do there (except for HTB in Linux which is
> really bad in terms
> of performance, IMHO).
>
> Dropping algorithms is used frequently as a term to describe AQM, e.g. in
> CLI based configuration
> systems you may find (in commercial Linux based products) SFQ among the
> dropping algorithms.
>
> It is clearly an abuse of language but common practice.  I unfortunately
> agree with Dave, and we discussed about
> that in Paris, that chipcos do not take care about flow based queue
> management (typically withing a given class).
> Only Linux  does that, but many products make use of Linux only for the
> slow path while the fast path is managed in hardware.
>
> Deploying QoS (including de-bloating in QoS) based on Linux is soon broken
> by the trend to distribute packet processing
> in dedicated processing units and  chipco ignore completely queue
> management there.
> Anytime I ask whether the chip implements deficit round round robin the
> answer is "of course!" and in the
> end it  turns out to be *modified* deficit round robin, i.e. class based
> queuing with up to say 64 queues.
> Which is not what I am looking for.
>
> One solution would be to move everything to software, but the cost of the
> chip that guarantees the same switching
> throughput is much higher.
>

There are two points I'll react to in this statement:

    1) performance: in the edge of the network, the SOC's used are already
very fast and more than fast enough to support algorithms such as fq_codel
(much faster than one's wireless or broadband connection).

The existence proofs are running code in OpenWrt on commodity home router
SOC's. And when I asked Eric Dumazet about fq_codel performance, he said I
could quote him as it taking 2% of a modern x86 CPU core at 10G speed.
 This was the point at which I got more than moderately excited about this
class of algorithms. CPU's are not what they were in the 1980's and 1990's,
and we have to get over that and move on.

So if hardware assist is not assisting, we don't have to use it, and it may
encourage hardware people to "get it right" the next generation.

   2) most application's performance is now bound by latency, and not
bandwidth.  Your web browsing doesn't get appreciably faster adding
bandwidth, but improving the latency, even if there is not competing
traffic, does improve performance, not to mention improving everything
across the board and for most things getting us out of the impossible to
configure QOS morass we're in.

As I said, what may be feasible or advisable to do at what point in the
network may vary: I don't think this group will *mandate* much at all, but
describing what can be used where for best effect is worth a lot, and
*possibly* mandating a "first, do no harm" algorithm, even if far from
ideal in many circumstances, to prevent no AQM being present at all, which
is a headache in today's network.

We're going to have a large number of different drop and queuing algorithms
over the coming years, I predict.
                                                - Jim



> I would suggest to put more emphasis that something new is being proposed
> here adding
> flow based packet scheduling as a novel item in the charter (in addition
> to class based, dropping or
> congestion notification).  Using Smart Queue Management seems misleading
> to me or not enough.
>
> Best regards,
> Luca
>
>
> --
> France Telecom R&D - Orange Labs
> MUSCARIELLO Luca - NMP/TRM
> 38 - 40, rue du General Leclerc
> 92794 Issy Les Moulineaux Cedex 9 - France
> Tel : +33 (0)1 45 29 60 37http://perso.rd.francetelecom.fr/muscariello
>
>
>
> On 06/05/2013 09:44 AM, Dave Taht wrote:
>
>
>
> On Wed, Jun 5, 2013 at 12:09 AM, Rong Pan (ropan) <ropan@cisco.com> wrote:
>
>>  I understand packet scheduling is important. However, most network
>> devices today treat these two issues separately: classed-based
>> scheduling/queueing and drop/mark algorithms. In class-based queueing,
>> vendors differ in how many classes that they support: 2, 4 or 8. In
>> drop/mark algorithm, vendors tend to implement both tail-drop and WRED.
>>
>
> I really have a great deal of trouble extrapolating to "vendors" here. I
> suppose you mean "big iron vendors", like Juniper, or Allied Telesis, which
> haven't weighed in on this list yet. In the CMTS market there are three
> players, and while I know what Arris can do, I would prefer an Arris
> representative to say. In terms of chipset makers ethernet support, most
> don't don't support anything in hardware, neither do the low end bridge
> chips, and thus they rely on software to do either AQM or FQ, in addition
> to doing useful things like firewalling or NAT. In servers, home routers,
> and handhelds, linux based devices are prevailant and can easily do just
> about anything. (I recently had a theorist badger me about doing a particle
> model for scheduling packets, because the GPU is effectively free on many
> common chipsets. I'm sooo not going there, but he is). Wifi chipsets
> generally have no strategy other than 802.11e for managing queues. Most of
> the France Telecom's dsl devices run shortest queue first, with longest
> queue drop. The list goes on and on...
>
>
>
>>  I think we can continue to treat these two issues separately as it has
>> been done in practice.
>>
>
>  Scheduling and drop algorithms have long been used in combination in
> practice. Examples include the venerable wondershaper, and openwrt's QoS
> system, which for most of the last 7 years or so was HFSC + SFQ + RED.
> Dozens of other examples exist, but not on the gear you are familiar with.
>
>
>>  We can prove the values of delay-based AQM and we can also prove the
>> value of FQ.
>>
>
> Sure. Thing is, we've pretty much proven that the two in combination are
> better than either, singly. Do you not agree with that assessment?
>
>
>>  The goal of AQM is to give early congestion notification before the
>> buffer becomes full or the delay gets big.
>>
>
> If you want to define AQM as Active Queue LENGTH management, then go right
> ahead and try. Actually I was thinking hard about expanding the scope of
> this proposed working group to be "Smart Queue Management" - which neatly
> not only encompasses FQ and queue length management, but also extends out
> to nagging problems like sanely rate limiting ipv6 ICMP responses to
> someone probing someone's entire /64 address space, and dealing with other
> sorts of attack like that, and problems like incast.
>
> Similarly, the problem of dealing with diffserv marking remains, as to how
> (or if) it would correctly interact with a SQM system.
>
> Things like iptables don't seem to have a home within the ietf presently
> (?)
>
>   Scheduling algorithms determine bandwidth allocation and weighted
>> fairness among different classes/flows. We don't have to mandate a
>> particular scheduling algorithm with a particular AQM scheme.
>>
>
> Concur with that very much. I continue to experiment with QFQ+, DRR, WFQ,
> SFQ, and other techniques.
>
>
>>  Vendors shall be free to choose their best performance-cost tradeoff
>> point. I think it would be challenging to force vendors to adopt a fixed
>> set.
>>
>
> Concur. Let the best set of ideas win both here and in the marketplace!
> But an end goal should be some effective form of SQM *on by default*, on
> everything.
>
>
>>  Best Regards,
>>
>>  Rong
>>
>>
>>
>>   From: Jim Gettys <jg@freedesktop.org>
>> Date: Tuesday, June 4, 2013 8:47 AM
>> To: Wesley Eddy <wes@mti-systems.com>
>> Cc: Mirja Kuehlewind <mirja.kuehlewind@ikr.uni-stuttgart.de>, "
>> aqm@ietf.org" <aqm@ietf.org>
>>
>> Subject: Re: [aqm] floating a draft charter
>>
>>   There are a number of things I want to see:
>>
>>  1) packet scheduling is as important as drop/mark algorithms: it is the
>> two together that is such a win with fq_codel.  So I, for one, would be
>> *very* unhappy to see a charter that meant it was out of scope to discuss
>> and document scheduling and flow queuing strategies.  And packet scheduling
>> can interact with drop mark algorithms.
>>
>>  Optimal scheduling depends on where you are in the network (e.g. a
>> host, versus home router, vs. ISP head end, etc.); documenting what makes
>> the most sense where would likely help both implementors of software and
>> hardware and operators of those networks.  I've given some thought to the
>> area, but until we have running code, it's hand waving, but probably won't
>> be hand waving in a year or two.
>>
>>  2) many mark/drop algorithms can co-exist (and generating informational
>> RFC's to help customers write RFP's is worth while): but so far, there is
>> no universal "one size fits all" mark/drop algorithm that is optimally
>> effective everywhere.  Kathy and Van say a primary goal of CoDel was
>> "first, do no harm", rather than "optimal under all circumstances".  The
>> goal was an algorithm that never hurt you and would always be safe to have
>> enabled. CoDel's constants were chosen so that CoDel will work at the edge
>> of the network with planetary length paths in the face of highly variable
>> bandwidth.
>>
>>  But CoDel inside a datacenter (unless you mess with its constants) is
>> not effective in a timely fashion.
>>
>>  People have feared tuneable algorithms such as (W)RED can hurt them, so
>> what we have had for AQM is sometimes not present at all, or not enabled
>> (even in nodes that it would help greatly).  Note that one of Dave Taht's
>> discoveries was that RED had been broken in the Linux source tree for 5
>> years and *no one had noticed*.
>>
>>  Maybe someday we'll reach nirvana with a drop/mark algorithm that "just
>> works" everywhere well all the time and can never hurt and always works
>> perfectly, but that's a lofty goal left for research; in the meanwhile,
>> helping people understand what to use where in the network and the
>> tradeoffs is important.
>>
>>  But if CoDel (as we believe) or some other algorithm really is "first,
>> do no harm" without tuning,  it has great value to be on by default just to
>> prevent the disaster an operator not enabling any AQM at all; the world
>> will never be worse than that, and usually be radically better. Anything
>> that *requires* tuning of knobs to work is a not a candidate....
>>
>>  3) Some algorithms may be hard to retrofit into existing platforms.
>>  For example, if you can't timestamp a packet, it's really hard to use
>> CoDel, which is an algorithm easy to implement from scratch, but could be
>> really hard retrofit in an existing hardware design. I don't want to
>> discourage people doing things a lot better than nothing as a stop-gap, but
>> people need to understand that it may be a second best solution.
>>
>>  Again, advice as to what/where algorithms may be applicable will help
>> designers and operators both.  We face a 5-10 year transition here, even if
>> we succeed this time.
>>
>>  4) There are "feagtures" or lack of features that today's hardware does
>> that can/does make life for software very hard. Changes could make life
>> much easier.
>>
>>  For example, today's hardware makes it hard to do true head drop (which
>> hardware assist could make trivial).  Some have noticed that at low
>> bandwidth we may adjust CoDel parameters to work around the lack of head
>> drop and unaccounted for time in the driver's ring buffers (which CoDel
>> needs), since Linux's qdisc's can't see the time in the rings. So there are
>> a set of recommendations to hardware and OS designers that would help the
>> state of the network: this simple head drop feature, packet pacing, making
>> GSO/TSO less evil, and so on, war stories on all the places we've been
>> working on debloating Linux to guide other OS developers, etc.
>>
>>  This is really the other side of queue management: try to encourage
>> traffic and systems that is less bursty and gentle to the network, so the
>> AQM/scheduling algorithms don't have to work as hard.
>>
>>  Such things should go someplace in the IETF, and if not here, where?
>>  Doing nothing anywhere is what I want to avoid.
>>
>>  Best regards,
>>     Jim
>>
>>
>>
>> On Thu, May 30, 2013 at 12:13 PM, Wesley Eddy <wes@mti-systems.com>wrote:
>>
>>> On 5/30/2013 8:20 AM, Mirja Kuehlewind wrote:
>>> >
>>> > But my point is, we should not only to standardize more and more AQM
>>> > mechanisms because that's a large research area which maybe even
>>> should be
>>> > homed in the IRTF, but we need to find actually deployment strategies.
>>> Having
>>> > a working group on AQM will already help to make people aware of the
>>> topic
>>> > and maybe think about using AQM. But only standardizing more and more
>>> AQM
>>> > queue, might end up in investing a lot of working that no-one will
>>> ever use.
>>>
>>>
>>>  I suggest appending something like this to the charter:
>>>
>>>   Many AQM algorithms have been proposed in academic literature, but
>>>   very few are widely implemented and deployed.  A goal of the working
>>>   group is to produce recommendations that will actually be used, and
>>>   algorithms that will actually be implemented, deployed in equipment,
>>>   and enabled.  Towards these ends, the group actively encourages
>>>   participation from operators and implementers, and will coordinate
>>>   with the IETF OPS area and other relevant parts of the IETF and
>>>   Internet community.  Wider research and evaluation of AQM mechanisms
>>>   shall be coordinated with the IRTF/ICCRG, and significant
>>>   participation in this WG from the academic and research community is
>>>   highly desirable, when it is directly relevant to implementation and
>>>   deployment.
>>>
>>>
>>> We will definitely need to get engagement from some of the operators
>>> that participate in the IETF, and should solicit participation more
>>> widely outside as well (e.g. advertise to NANOG list, bufferbloat
>>> list, etc.) in order to attract operators and implementers that aren't
>>> already aware of this activity.
>>>
>>> Would this help to address your concern?
>>>
>>>
>>> --
>>> Wes Eddy
>>> MTI Systems
>>>  _______________________________________________
>>> aqm mailing list
>>> aqm@ietf.org
>>> https://www.ietf.org/mailman/listinfo/aqm
>>>
>>
>>
>> _______________________________________________
>> aqm mailing list
>> aqm@ietf.org
>> https://www.ietf.org/mailman/listinfo/aqm
>>
>>
>
>
> --
> Dave Täht
>
> Fixing bufferbloat with cerowrt:
> http://www.teklibre.com/cerowrt/subscribe.html
>
> _______________________________________________
> aqm mailing listaqm@ietf.orghttps://www.ietf.org/mailman/listinfo/aqm
>
>
>
> _______________________________________________
> aqm mailing list
> aqm@ietf.org
> https://www.ietf.org/mailman/listinfo/aqm
>
>