From: Dan Williams <dcbw@redhat.com>
To: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH 00/39] merge request for WiMAX kernel stack and i2400m driver v2
Date: Wed, 03 Dec 2008 18:03:49 -0500 [thread overview]
Message-ID: <1228345429.25647.36.camel@localhost.localdomain> (raw)
In-Reply-To: <200812021807.25873.inaky@linux.intel.com>
On Tue, 2008-12-02 at 18:07 -0800, Inaky Perez-Gonzalez wrote:
> On Thursday 27 November 2008, Johannes Berg wrote:
> > along, more functionality was moved to the host (yes, you say this
> > won't happen with wimax, but I think it will, eventually, if wimax
> > gets to be popular enough. never say never), and wext got more
>
> Agree, never say never; but these are the reasons why I highly doubt
> it'll ever happen:
>
> - WiMAX spectrum is heavily regulated
Well, to be fair 3.5GHz is "lightly regulated" here in the US, you just
have to register your base station with the FCC and as long as nobody
else has done so in your area, you win. The Intel parts don't support
3.5 GHz, but I'm sure somebody elses parts will in the future.
TowerStream has already deployed 3.5GHz fixed WiMAX gear here in Boston,
though they are doing fixed access/T1-replacement for businesses, not a
large consumer-focused mobile wimax network like XOHM/Clear.
Dan
> - Operators won't allow it. They want tightly safe, certified and
> tested firmwares/devices that adhere to the standard so they can
> make sure devices don't mess up a single hertz as that means lost
> money, especially with a radio that can beam over miles.
>
> - Certification (required) of stacks make it almost
> impossible to maintain a soft implementation.
>
> > messy. Wext even was defining actual operations, as undefined as
> > they often were, you're not even doing that.
>
> Why would I define them when I don't even know how they are going to
> look like? It is not as simple as it looks.
>
> The basics that aren't covered in current's kernel API are scan,
> connect, disconnect. Disconnect is simple, but scan & connect? very
> much impossible to tell what common ground is going to be until more
> devices show up.
>
> For scanning, some devices require to be told exactly where to scan in
> (as in which combination of band, fft width and coloring of the
> band). Some others don't. Then of course, the scan results might be
> operators? Network Service Providers? Network Access Providers? base
> station IDs? how do you stitch'em together? You need information to
> map from one to the other, and that is device specific depending on at
> which level they work. How to stich that information together depends
> on the network too (OMA-DM and provisining information help to compose
> this). If it is done at the device/firmware level or at the host level
> is device specific.
>
> Connect has exactly the same levels of issues as scan: what do I
> connect to? A base station? a NAP or an NSP?
>
> So back to the original question: I have no information to define such
> an interface at low level, so I am not defining it. Simple :/
>
> > I don't think you can say it's like cfg80211, cfg80211 in fact does a
> > lot more than the wimax "stack", it can validate parameters for
> > example, and provides actual operations (key operations, peer
> > operations, scanning [soon], ...) rather than just a transport to
> > the driver. As I've said on the relevant patch, I'd love to see the
> > wimax stack take more of that direction.
>
> If it has to happen, it will happen eventually. If it is a stack or
> not as of now and just a simple control interface, not that I really
> mind. It's just a name.
>
> > I don't see that as much of a problem. Many of the commands you have
> > defined for the i2400m driver are very generic, for example:
>
> As I said above, it is not so simple. They are not as generic as they
> look.
>
> > This is the biggest issue I see here. I don't see how the stack
> > helps anyone implement a driver for a new device. Sure, they won't
> > have to come up with a new transport, write less lines of generic
> > netlink code, but ultimately that's not the hard part, the hard part
> > is getting the relevant operations right etc.
>
> I agree -- and that's the whole reason why the "stack" is
> there--because even if it doesn't look so hard, it's just a
> pain.
>
> This way someone comes in with a need for a driver and then we can
> start deciding how to cut the scan & connect interfaces. Maybe it
> makes no sense to do it at the kernel level and it has to be done at
> user space, as the i2400m does it; then the kernel API stays the
> same...until another driver comes in...etc. Don't fix it if it ain't
> broke.
>
> > This really means you're putting the actual "driver", the piece that
> > does the hardware abstraction, into userspace. And in a binary daemon
> > even, afaict. This was quickly shot down with ipw3945/4965, not sure why
> > nobody has cared here so far. Maybe because you're actually planning to
> > open source that part.
>
> Nope. I am putting the part that knows how to scan and connect in user
> space because it does not belong in kernel space. It is big and complex,
> needs permanent storage, requires complex crypto code and can really
> use a OMA-DM client to communicate with the network.
>
> Not a binary, btw. Currently the supplicant is a binary, but that will
> change. The OMA-DM client daemon is also a binary as of now and we
> are still thinking how to fix that situation, as there are no open
> source equivalents. Luckily, it is kind of optional.
>
> > Couldn't the stack provide more functionality here? Somewhere else
> > you speak of using ethernet vs. rawip, couldn't the stack do that
> > translation, possibly even allowing both rawip and ethernet to
> > coexist, or be switchable at runtime if you have a working dhcp
> > client?
>
> The stack is a control plane, not a data plane. Each driver implements
> data frame passing the way that is most optimal to the device it
> implements support for.
>
> There is not good reason (as of now) that justifies the extra overhead
> that would be introduced by the "stack" doing it.
>
> The only reason I would see that happening would be a mac80211 like
> case, where the stack is doing packet handling in a hypothetical
> soft-mac implementation. As I said above, I highly doubt that
> scenario.
>
> Thanks,
>
next prev parent reply other threads:[~2008-12-03 23:04 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-26 22:40 [PATCH 00/39] merge request for WiMAX kernel stack and i2400m driver v2 Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 01/39] wimax: documentation for the stack Inaky Perez-Gonzalez
2008-11-27 9:29 ` Johannes Berg
2008-12-03 2:07 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 02/39] wimax: declarations for the in-kernel WiMAX API Inaky Perez-Gonzalez
2008-11-27 9:32 ` Johannes Berg
2008-12-03 2:07 ` Inaky Perez-Gonzalez
2008-12-04 9:04 ` Johannes Berg
2008-12-04 20:11 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 03/39] wimax: constants and definitions to interact with user space Inaky Perez-Gonzalez
2008-11-27 9:41 ` Johannes Berg
2008-12-03 2:06 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 04/39] wimax: internal API for the kernel space WiMAX stack Inaky Perez-Gonzalez
2008-11-27 9:43 ` Johannes Berg
2008-12-03 2:07 ` Inaky Perez-Gonzalez
2008-12-04 9:02 ` Johannes Berg
2008-12-04 19:22 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 05/39] wimax: debug macros and debug settings for the " Inaky Perez-Gonzalez
2008-11-27 9:28 ` Johannes Berg
2008-12-03 2:07 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 06/39] genetlink: export genl_unregister_mc_group() Inaky Perez-Gonzalez
2008-11-26 23:07 ` Johannes Berg
2008-11-26 22:40 ` [PATCH 07/39] wimax: generic WiMAX device management (registration, deregistration, etc) Inaky Perez-Gonzalez
2008-11-27 10:40 ` Patrick McHardy
2008-12-03 2:06 ` Inaky Perez-Gonzalez
2008-12-04 13:02 ` Patrick McHardy
2008-11-26 22:40 ` [PATCH 08/39] wimax: Mappping of generic netlink family IDs to net devices Inaky Perez-Gonzalez
2008-11-27 9:47 ` Johannes Berg
2008-12-03 2:06 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 09/39] wimax: provides user space with information needed when opening a WiMAX device Inaky Perez-Gonzalez
2008-11-27 9:53 ` Johannes Berg
2008-11-27 12:20 ` Johannes Berg
2008-12-03 2:06 ` Inaky Perez-Gonzalez
2008-11-27 10:44 ` Patrick McHardy
2008-11-26 22:40 ` [PATCH 10/39] wimax: Generic messaging interface between user space and driver/device Inaky Perez-Gonzalez
2008-11-27 9:55 ` Johannes Berg
2008-11-27 12:35 ` Thomas Graf
2008-12-03 2:02 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 11/39] wimax: RF-kill framework integration Inaky Perez-Gonzalez
2008-11-27 9:56 ` Johannes Berg
2008-12-03 2:03 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 12/39] wimax: API call to reset a WiMAX device Inaky Perez-Gonzalez
2008-11-27 9:58 ` Johannes Berg
2008-12-03 2:05 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 13/39] wimax: Makefile, Kconfig and docbook linkage for the stack Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 14/39] i2400m: documentation and instructions for usage Inaky Perez-Gonzalez
2008-11-27 10:01 ` Johannes Berg
2008-12-03 2:06 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 15/39] i2400m: host-to-device protocol definitions Inaky Perez-Gonzalez
2008-11-27 10:04 ` Johannes Berg
2008-12-03 2:06 ` Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 16/39] i2400m: core driver definitions and API Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 17/39] i2400m: Generic probe/disconnect, reset and message passing Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 18/39] i2400m: linkage to the networking stack Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 19/39] i2400m: sysfs controls Inaky Perez-Gonzalez
2008-11-27 9:23 ` Johannes Berg
2008-11-26 22:40 ` [PATCH 20/39] i2400m: rfkill integration with the WiMAX stack Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 21/39] i2400m: firmware loading and bootrom initialization Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 22/39] i2400m: handling of the data/control reception path Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 23/39] i2400m: handling of the data/control transmission path Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 24/39] i2400m: various functions for device management Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 25/39] i2400m/USB: header for the USB bus driver Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 26/39] i2400m/USB: error density tracking Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 27/39] i2400m/USB: main probe/disconnect and backend routines Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 28/39] i2400m/USB: firmware upload backend Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 29/39] i2400m/USB: handling of notifications from the device Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 30/39] i2400m/USB: read transactions from the USB device Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 31/39] i2400m/USB: write transactions to " Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 32/39] i2400m/SDIO: header for the SDIO subdriver Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 33/39] i2400m/SDIO: main probe/disconnect and backend routines Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 34/39] i2400m/SDIO: firmware upload backend Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 35/39] i2400m/SDIO: read transactions from the SDIO device Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 36/39] i2400m/SDIO: write transactions to " Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 37/39] i2400m: Makefile and Kconfig Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 38/39] wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install Inaky Perez-Gonzalez
2008-11-26 22:40 ` [PATCH 39/39] wimax/i2400m: add CREDITS and MAINTAINERS entries Inaky Perez-Gonzalez
2008-11-27 8:17 ` [PATCH 00/39] merge request for WiMAX kernel stack and i2400m driver v2 David Miller
2008-11-27 9:24 ` Inaky Perez-Gonzalez
2008-11-27 10:18 ` Arkadiusz Miskiewicz
2008-11-27 10:41 ` Marcel Holtmann
2008-11-27 10:54 ` Johannes Berg
2008-11-27 11:14 ` Marcel Holtmann
2008-11-27 11:23 ` Johannes Berg
2008-11-30 4:05 ` Dan Williams
2008-11-27 11:47 ` Andi Kleen
2008-11-27 11:50 ` Johannes Berg
2008-11-27 16:51 ` Inaky Perez-Gonzalez
2008-12-03 2:07 ` Inaky Perez-Gonzalez
2008-12-03 23:03 ` Dan Williams [this message]
2008-12-04 9:00 ` Johannes Berg
2008-12-04 19:21 ` Inaky Perez-Gonzalez
2008-12-04 23:09 ` Johannes Berg
2008-12-03 2:10 ` Inaky Perez-Gonzalez
2008-12-04 9:01 ` Johannes Berg
2008-12-04 13:37 ` Marcel Holtmann
-- strict thread matches above, loose matches on Subject: below --
2008-11-26 7:38 Inaky Perez-Gonzalez
2008-11-27 10:47 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1228345429.25647.36.camel@localhost.localdomain \
--to=dcbw@redhat.com \
--cc=inaky@linux.intel.com \
--cc=johannes@sipsolutions.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox