Re: bettering open source involvement

Dave Taht <> Fri, 29 July 2016 11:44 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 76E8212D537 for <>; Fri, 29 Jul 2016 04:44:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id FJ7EZ-Cwf3Ky for <>; Fri, 29 Jul 2016 04:44:20 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4001:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 2370212DDC8 for <>; Fri, 29 Jul 2016 04:44:20 -0700 (PDT)
Received: by with SMTP id q83so126582429iod.1 for <>; Fri, 29 Jul 2016 04:44:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=+i1YmkZtb0Yar3HMAquom90quHp5VzPMItZLDjMrMQo=; b=qAMtISxAVRSWfKloVR6chnFXsjrfnOtvfovjLtmiXeGsg/LjvACdOzDVhGobhDoQey BvMNWNKzpQhHQ1AcgvI5C0+oj7L44s831/qky3VNk8n/9FrtVwCmgvd6JVbXiwilIsqT uL3Ab3PgxJyVJYClvDMZjyVrYXfXh4caTSUSrhmdL8oqHq2RknqAe26xBjEAh9TONPFl cg2LyF1Gpzo1x92a1Pt/De7QzZVUeFh3H8mohfWvILwWKHhnRa2vtDCDF4JOwM7oS392 9dSb+W9yW9oPNT+MouSjdVk4F1ZaLzC4BUlH66L/gUDhO1rO3xutbwpvCxoANLWBocBd QMrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=+i1YmkZtb0Yar3HMAquom90quHp5VzPMItZLDjMrMQo=; b=CwxumSpJTKDUehCwxJ7avyuRybDE8pqotGs/yKT08MfQOgNN2zroid/j2r/cE3SyIA 9stDlDkanLuRWb1YlgtwPxmsWiAuJoFZlrPEmWICsL/gItNlpYpZzucJ2RUviL1BFUA9 IZG7CovfHiAmzVy82rznWUOgU99ln1Ynjmn/gDlB8Yn4U34LF895IRs6IxOKKe8ukdPx nnrSiUEsEOsLlQGUUejTJK1px8uwpppibGnKIGsRR+7FgN3eAxw6zICS+AkQSHtE8VAZ l2tbRiUkVn69SFHDPGdOCaYXEeCTAlUPGdAMtNv/UY8Y8RhgpMuHNCS/4dxN+E4vBxtE rLdQ==
X-Gm-Message-State: AEkoouvqmzDAc+fwWDiSnS2eP7Vo4IUOByZZWOHrR9Fhivp4jJozc4bDheFVLO2ObQhEH4EfpRLa97jSxIytLg==
X-Received: by with SMTP id 91mr41944614ioi.86.1469792659319; Fri, 29 Jul 2016 04:44:19 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Fri, 29 Jul 2016 04:44:18 -0700 (PDT)
In-Reply-To: <>
References: <> <>
From: Dave Taht <>
Date: Fri, 29 Jul 2016 13:44:18 +0200
Message-ID: <>
Subject: Re: bettering open source involvement
To: "Bjoern A. Zeeb" <>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Cc: IETF Discussion Mailing List <>
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 29 Jul 2016 11:44:22 -0000

On Thu, Jul 28, 2016 at 2:24 PM, Bjoern A. Zeeb
<> wrote:
> On 28 Jul 2016, at 8:56, Dave Taht wrote:
>> At both ietf and BBF this past week a frequent topic of conversation
>> was how to get more open source involvement in standards orgs...
>> ... and one counter-thrust of mine has always been to get more
>> standards org members involved in open source, because that dialog has
>> to go both ways.
>> I thought I would point at several useful upcoming conferences in the
>> hope that perhaps there would be some members of ietf/isoc "out there"
>> planning some outreach in this regard.
> There’s gazillions of conferences as you say.  Being a BSD guy I could give
> you a list of those but that’s missing the point I think.

Well, honestly, I think a pointer to those conferences would be good too!

Bugs accumulate at the interfaces between the layers.

> What you should do is do the reference implementations for at least 2
> different (Open Source) Operating Systems before or rather along writing a
> document.

While I agree that running code and rough consensus and two
implementations is the best strategy...

One person rarely has the in-depth chops to handle internals of more
than one OS. Usually there is a need for a large team of complementary
skills. A huge problem for standards orgs are the demands of the GPL.

An over-long anecdote:

In 2012 Kathie Nichol's original codel code was in C++, in ns2. I
ported it (from that and their paper - with a ton of help!) to
C/Linux. Eric Dumazet wrote/rewrote the entire thing (not a line of my
code remains) and made it fast, and a week later, wrote fq_codel in a
single saturday afternoon, based on our earlier work with sfqred.
There were years of experimentation (decades in the case of kathie and
van) prior to that, that resulted in something that simple and
elegant. We've spent years, now, with the sqm-scripts, dealing with
the vagaries of the cable, dsl and PP* link layers. We've got nowhere
on getting a dsl firmware maker (other than to put in the
code needed to apply them properly at the right layer there... despite
only needing BQL-like buffer management in the dsl firmware. 50 lines
of code. Not there. Grump.

We've now spent 4 years trying to standardize fq_codel. We (toke,
mostly) had to produce a text only RFC draft - due to the GPLness of
the original fq portion of the fq_codel code, so that someone else
with BSD chops could do a port, when funding was found. That happened,
finally, a few months ago.

The ns2 (BSD, kathie) and ns3(andrew mcgregor) (GPL) versions of this
code are still, almost, kinda, still out of tree patches for those
simulators, because they required a whole bunch of other
infrastructure to "get in there" (too many contributors to list)
There's been the hope that the ns3 version would finally be merged in
this release cycle, I don't know if it made it yet.

Work on "cake" (successor to the sqm-scripts) is dual BSD/GPL licensed
in the expectation that writing a RFC will be basically impossible
without reference to source code as the algorithms are too complex to
write down in english. If people have lost skills to read stuff in C,
tough, I'm not going to do a yang model.


honestly, if I'd known how hard it would be and how long it would take
to do, I'd have never started standardizing fq_codel. I would have
moved on, instead, to applying it to wifi, and the code would have
been available for Linux users to use 6+ billion wifi devices ago.

I've never worked so hard in my life to give away something for free,
and I'm ill-inclined to ever do it again. (at the moment).

4 years now spent, not doing stuff that would have been more
immmediately valuable, had we stuck to coding, at the current pace of
the internet's growth. I sure as heck hope that 5 years from now I can
look back at all the work of the aqm wg and see products using it
deploying faster than the internet is growing, but am pessimistic.


So my meta point is, standardizing something takes a lot of resources,
a lot of different kinds of people, a lot of time, and a lot of things
that should happen in parallel that end up happening in sequence.

One thought for a new ietf process might be the concept of a "funded
working group", along the lines of how linux foundation, the apache
foundation work, that handles the baseline needs of the group for
coding, testing and rfc-writing resources.


Innovating in userspace is much easier, except that userspaces have
evolved in radically different ways also. I have no idea, none,
whatsoever, about what would be required, to make the outputs of the
homenet wg actually work outside of openwrt (and we're working on
debian support), on iOS, OSX, Android, and Windows. Standardization
may help (but there were few if any actual home router vendors in the
room) - and certainly APIs for much stuff would be nice to have. Been
trying to get all the OS vendors to discuss sane standard APIs to the
dscp/ecn bits for over a year now, with no progress.

>That will (a) guarantee running code

Having a QA team and userbase also helps.

> and (b) a lot of documents
> will be written better, more understandable, and cover the bits that
> actually matter and won’t be “theory” only which people who have to
> implement them after the facts go head->desk().

+1. Actually implementing stuff first filters out the bad idea
quotient and noise on the mailing lists by a lot.

> That brings me to (c) as
> you’ll have a valuable contribution to actually go to one of the conferences
> and present your work there and engage with that community (and, yes, that
> can be an overlapping effort, e.g., go and discuss while you are working on
> the prototype to see what field experts think about it;  their feedback then
> will influence your implementation and the document and you are back at (a)
> and (b)).

I don't regard my end goals as writing a paper, or going to
conference. My end goals are running, deployed, correct, useful code.

I wish more people shared those, of course, and that academia, in
particular, rewarded those that made good, oft-used, deployed code,
more than those that made good, underread papers.

Certainly conference attendance is a tremendous source of contacts,
and collaborators, and far more than the actual meetings themselves, I
love the $RANDOM in the hallways and beer bofs, and that's why I go to
several different kinds of conferences, and only attend ietf once a

To paraphrase what I said earlier...

the bugs accumulate between the cracks of the organizations. As for
APIs, does posix still have a pulse?

> Just half a ct from me
> /bz

Dave Täht
Let's go make home routers and wifi faster! With better software!