From: Jiri Benc <jbenc@suse.cz>
To: Michael Buesch <mbuesch@freenet.de>
Cc: "David S. Miller" <davem@davemloft.net>,
davej@redhat.com, jgarzik@pobox.com, josejx@gentoo.org,
linux-kernel@vger.kernel.org, bcm43xx-dev@lists.berlios.de,
netdev@vger.kernel.org, laforge@gnumonks.org,
Michael Renzmann <netdev@nospam.otaku42.de>,
Jouni Malinen <jkmaline@cc.hut.fi>
Subject: Re: Broadcom 43xx first results
Date: Thu, 8 Dec 2005 12:32:37 +0100 [thread overview]
Message-ID: <20051208123237.61367a27@griffin.suse.cz> (raw)
In-Reply-To: <200512071434.23706.mbuesch@freenet.de>
On Wed, 7 Dec 2005 14:34:22 +0100, Michael Buesch wrote:
> I agree with you, and that is exactly what we are doing:
> We take the existing code and add functionality to it. If the
> added functionality is an external module, well, consinder this
> as an extra cookie for devices which do not need MAC handling.
I understand why you are trying to implement "softmac" as a separate
module. But please take a look at following:
1. Fragmentation. Almost every driver (the exception are devices which
do fragmentation in their firmware) needs to pass fragments to the
device one by one. To handle it effectively, you need fragments to be
passed to your hard_start_xmit sequentially (and not all at once). This
is of course solvable by a separate softmac module, if you implement it
as a layer between ieee80211 and a driver.
2. Devices capable to associate with multiple networks. Such a device
needs to be presented to userspace as several network devices. Again, it
is solvable by a separate softmac module, but you need softmac to be
something like a "proxy" for drivers (because you don't want to deal
with multiple net_devices in the driver).
3. WDS. This is nearly the same as above, but in addition you need a
different code for building 802.11 headers. So this will be built on top
of ieee80211 (because you want to use statistics gathering and so) but
at the same time you will have to reimplement the code responsible for
frame encapsulation in a softmac module. Or, you can add the support for
WDS directly to ieee80211, but then you will add the code for handling
of multiple devices there as well.
4. Access point mode. There is a lot of code needed for AP mode support.
It can be easily implemented in softmac module. But that code will be
used even by drivers for devices with complicated firmware (think about
communication with an userspace AP daemon which won't be easy and should
be consistent among drivers). So in the end (we want AP mode working for
all devices supporting it, don't we?) only a few drivers won't use
softmac module.
Those above are some reasons why I prefer complete 802.11 stack to be in
ieee80211 module. Maybe I'm wrong (and I will be more than happy to
advocate the separate softmac module if it turns out that I'm wrong),
but I'm thinking this way:
- If AP, WDS and so on is implemented in a softmac module, only a very
small amount of drivers won't use that module.
- Such softmac module needs to be implemented as a layer between
ieee80211 and a driver. This will lead to code duplication and will be
less effective.
- If AP, WDS and so on is implemented in ieee80211 module, softmac
module will be very tiny (especially compared to ieee80211 module) and
it is not worth effort to implement it as a separate module.
- (Not a strong argument) Most of drivers will use "softmac" anyway
(it's more than a half of drivers as somebody mentioned earlier).
Please, could you send your opinions to this issues and how to solve
them the best way? It seems that many people agree that separate softmac
module is the way to go, so I'm probably wrong with my conclusions.
Thanks,
--
Jiri Benc
SUSE Labs
next prev parent reply other threads:[~2005-12-08 11:32 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1Eiyw4-0003Ab-FW@www1.emo.freenet-rz.de>
2005-12-05 18:00 ` Broadcom 43xx first results Jiri Benc
2005-12-05 18:14 ` Michael Renzmann
2005-12-05 18:46 ` Jeff Garzik
2005-12-05 18:49 ` Jiri Benc
2005-12-05 18:54 ` Jeff Garzik
2005-12-05 19:11 ` Jiri Benc
2005-12-06 7:17 ` Michael Renzmann
[not found] ` <20051205190038.04b7b7c1-IhiK2ZEFs2oCVLCxKZUutA@public.gmane.org>
2005-12-05 18:38 ` Joseph Jezak
2005-12-05 18:55 ` Jiri Benc
2005-12-05 19:08 ` Jeff Garzik
2005-12-05 19:18 ` Jiri Benc
2005-12-05 19:53 ` Dave Jones
2005-12-05 20:09 ` Jeff Garzik
2005-12-06 15:10 ` Harald Welte
2005-12-06 19:05 ` Jeff Garzik
2005-12-07 7:16 ` Harald Welte
2005-12-06 23:19 ` David S. Miller
2005-12-06 23:45 ` Jeff Garzik
2005-12-07 13:34 ` Michael Buesch
2005-12-08 11:32 ` Jiri Benc [this message]
2005-12-08 12:07 ` Jiri Benc
2005-12-08 12:12 ` Arjan van de Ven
2005-12-08 13:03 ` Jiri Benc
2005-12-05 19:10 ` Christoph Hellwig
2005-12-05 19:31 ` Jiri Benc
2005-12-05 19:41 ` Christoph Hellwig
2005-12-05 20:11 ` Jiri Benc
2005-12-06 15:09 ` Pavel Machek
2005-12-06 16:43 ` Ben Greear
2005-12-06 23:25 ` David S. Miller
2005-12-06 19:24 ` Jeff Garzik
2005-12-06 15:04 ` Pavel Machek
2005-12-08 0:00 ` Michael Wu
2005-12-08 1:05 ` Jeff Garzik
2005-12-05 20:23 ` Michael Buesch
2005-12-05 20:42 ` Jiri Benc
2005-12-06 9:26 ` Kyle Moffett
2005-12-06 10:23 ` Luc Saillard
2005-12-06 22:47 Jean Tourrilhes
2005-12-07 7:11 ` Jouni Malinen
2005-12-07 19:16 ` Jean Tourrilhes
2005-12-07 19:47 ` Jouni Malinen
2005-12-07 19:05 ` Jean Tourrilhes
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=20051208123237.61367a27@griffin.suse.cz \
--to=jbenc@suse.cz \
--cc=bcm43xx-dev@lists.berlios.de \
--cc=davej@redhat.com \
--cc=davem@davemloft.net \
--cc=jgarzik@pobox.com \
--cc=jkmaline@cc.hut.fi \
--cc=josejx@gentoo.org \
--cc=laforge@gnumonks.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mbuesch@freenet.de \
--cc=netdev@nospam.otaku42.de \
--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;
as well as URLs for NNTP newsgroup(s).