Subject: Re: [PATCH 2.6.18] WE-21 support (core API)

From: Stuffed Crust <[email-masked]>
Date: Mon, 4 Sep 2006 10:13:28 -0400

On Mon, Sep 04, 2006 at 10:35:09AM +0200, Johannes Berg wrote:
> wireless.c and driver WE support in its current form must die.

I doubt you'll have anyone argue this point; not even JT.  I doubt he 
cares how WE is ultimately implemented, only that things continue 
to "just work".

The problems you've just enumerated with WE aren't actually the fault of
WE per se, but rather an internal kernel API problem -- Wireless drivers
currently handle the WE ioctls directly, and thus all have their own
quirks. (Or as you put it, a userspace API dictated internal APIs.  It 
may have been GoodEnough(tm) then, but it isn't any longer, eh?)

While a new userspace API will eventually open up more possibilities,
the real benefit of d80211/nl80211 is its middle/thunk layer, simplifying
driver development considerably through its shared code (and 802.11
stack), and generally enforcing a separation of userspace from device
drivers and the current mess that's a result.  But then you already
explained all of this (and I completely agree with your enumeration of
the benefits)

I won't shed any tears to see WE (the userspace API) superceded (as long
as its replacement is genuinely better rather than simply different) and
I'll dance for joy when the internal wireless APIs get replaced and
wireless drivers no longer directly interact with userspace -- but keep
in mind that these are two independent scenarios.

Treat WE as a userspace API, not an internal API.  From d80211/nl80211's
perspective, the code necessary to support the latest WE-21 proposal is
trivial[1], and in the mean time, WE-21 fixes several real, current
problems that affect users *now*, necessitating a solution *now*.

Meanwhile.

I look at this and can't but help think about ALSA.  How long did it
take to get ALSA merged into the kernel, despite it being that much
MoreBetter(tm) than the in-kernel OSSFree drivers/APIs, each with their
own userspace interactions and thus behaivoral quirks and bugs?  And how
many in-kernel OSS drivers still remain because of problems with (or
missing) ALSA drivers?  (And how many quirks still remain with the 
alsa-oss emulation?)

 - Solomon

[1] Generic WE support is 2K/37K [mid-layer] lines in one of the 
    codebases I maintain, and that includes full compatibility with 
    WE-8 through WE-21.
-- 
Solomon Peachy        		       pizza at shaftnet dot org	 
Melbourne, FL                          ^^ (mail/jabber/gtalk) ^^
Quidquid latine dictum sit, altum viditur.          ICQ: 1318344