Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Johannes Berg
On Thu, 2006-10-26 at 11:33 -0400, Dan Williams wrote:

> The one blocker I can think of here is startup scripts on various
> distributions.  Most of those are shell, and they usually rely on
> iwconfig quite heavily.  Getting those converted to wpa_supplicant
> wouldn't be a trivial amount of work, but it wouldn't be a ton either.

But as I've said forever... I intend to leave WE working when we move to
cfg80211. We can't rip out the old userspace API just like that.

johannes


signature.asc
Description: This is a digitally signed message part


RE: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Johannes Berg
On Thu, 2006-10-26 at 14:41 -0700, Simon Barber wrote:
> Getting people to use wpa_supplicant almost exclusivly as the interface
> for wireless will improve a lot of things. One thing that might help
> here is to do some work on the wpa_cli - to make it easier for the
> startup scripts to do what they need, and also to make the command
> syntax easier for command line users to do what they need.

But we'll still want something to change channels when in monitor mode
etc, so it can't really be exclusive. Hence, we need another tool as
well.

johannes


signature.asc
Description: This is a digitally signed message part


RE: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Simon Barber
Getting people to use wpa_supplicant almost exclusivly as the interface
for wireless will improve a lot of things. One thing that might help
here is to do some work on the wpa_cli - to make it easier for the
startup scripts to do what they need, and also to make the command
syntax easier for command line users to do what they need.

Simon 

-Original Message-
From: Dan Williams [mailto:[EMAIL PROTECTED] 
Sent: Thursday, October 26, 2006 8:33 AM
To: Luis R. Rodriguez
Cc: Johannes Berg; Michael Wu; Simon Barber; David Kimdon;
netdev@vger.kernel.org; Jiri Benc; John W. Linville; Jean Tourrilhes;
Hong Liu; Jouni Malinen
Subject: Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

On Thu, 2006-10-26 at 11:04 -0400, Luis R. Rodriguez wrote:
> On 10/26/06, Dan Williams <[EMAIL PROTECTED]> wrote:
> > While wpa_supplicant is certainly the main client for stuff directly

> > related to setting up a connection, there are quite a few other 
> > users of general WE calls to pull information out of the card, or to

> > receive scan events.
> 
> How about we just ditch iwconfig completely and move on to 
> wpa_supplicant/wpa_cli as our next userspace application with
> nl80211/cg80211 as our new API for usersapce-->kernel communication?
> As you point out, wpa_supplicant already does a lot for us -- and 
> several distributions already rely on it. Some work is required but I 
> think its worth it. If we do a complete move from WE to nl80211 it 
> would be transparent to the users too.

The one blocker I can think of here is startup scripts on various
distributions.  Most of those are shell, and they usually rely on
iwconfig quite heavily.  Getting those converted to wpa_supplicant
wouldn't be a trivial amount of work, but it wouldn't be a ton either.

Dan

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Dan Williams
On Thu, 2006-10-26 at 11:04 -0400, Luis R. Rodriguez wrote:
> On 10/26/06, Dan Williams <[EMAIL PROTECTED]> wrote:
> > While wpa_supplicant is certainly the main client for stuff directly
> > related to setting up a connection, there are quite a few other users of
> > general WE calls to pull information out of the card, or to receive scan
> > events.
> 
> How about we just ditch iwconfig completely and move on to
> wpa_supplicant/wpa_cli as our next userspace application with
> nl80211/cg80211 as our new API for usersapce-->kernel communication?
> As you point out, wpa_supplicant already does a lot for us -- and
> several distributions already rely on it. Some work is required but I
> think its worth it. If we do a complete move from WE to nl80211 it
> would be transparent to the users too.

The one blocker I can think of here is startup scripts on various
distributions.  Most of those are shell, and they usually rely on
iwconfig quite heavily.  Getting those converted to wpa_supplicant
wouldn't be a trivial amount of work, but it wouldn't be a ton either.

Dan

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Luis R. Rodriguez

On 10/26/06, Dan Williams <[EMAIL PROTECTED]> wrote:

While wpa_supplicant is certainly the main client for stuff directly
related to setting up a connection, there are quite a few other users of
general WE calls to pull information out of the card, or to receive scan
events.


How about we just ditch iwconfig completely and move on to
wpa_supplicant/wpa_cli as our next userspace application with
nl80211/cg80211 as our new API for usersapce-->kernel communication?
As you point out, wpa_supplicant already does a lot for us -- and
several distributions already rely on it. Some work is required but I
think its worth it. If we do a complete move from WE to nl80211 it
would be transparent to the users too.

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Johannes Berg
On Thu, 2006-10-26 at 10:35 -0400, Dan Williams wrote:

> >  - I'd like to see a header cleanup, it's necessary. Part of the problem
> >here is all the sub-ioctl WE foo. Clean that up by moving them into
> >cfg80211 as required, there's basically one user, wpa_supplicant (and
> >maybe hostapd), screw the others if there are any

Oh, right, by sub-ioctl I was referring to the mess of the private
ioctls d80211 has for WE, including sub-items again.

> While wpa_supplicant is certainly the main client for stuff directly
> related to setting up a connection, there are quite a few other users of
> general WE calls to pull information out of the card, or to receive scan
> events. 

Of course.

> So if you want maximum compatibility for a limited amount of
> work, you can probably consider wpa_supplicant the only client of
> 
> (s = set, g = get)
> 
> 1) [s|g] ENCODEEXT
> 2) [s|g] AUTH
> 3) [s|g] MLME
> 4) [s] RATE
> 5) [s] FREQ
> 6) [s] SENS
> 7) [s] AP
> 8) [s|g] RTS
> 9) [s|g] FRAG
> 10)[s|g] GENIE
> 11)[s|g] PMKSA

Sounds about right to me. I did actually intend to keep these intact but
drop the private ones with the 10xx sub-numbers.

> 4) [s|g] POWER (power management does this, not wpa_supplicant)

Does it work for any card?

johannes
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-26 Thread Dan Williams
On Thu, 2006-10-26 at 00:00 +0200, Johannes Berg wrote:
> On Wed, 2006-10-25 at 13:43 -0400, Luis R. Rodriguez wrote:
> 
> > I guess my hope was that d80211 would just be more than a softmac
> > implementation. When I hear wireless stack I don't think "softmac
> > implementation", I think a robust set of headers and device
> > definitions which all wireless devices can share.
> 
> Not just that, a bunch of library functions for example for crypto would
> be nice too. That's part of why I've been proposing that the tkip stuff
> be library functions that the drivers can call if required, instead of
> the bitfields.
> 
> Currently, there's lot of top-down stuff in d80211, it does things which
> depend on flags and then instructs the driver to do something. This is
> good for a bunch of things, but in some cases where devices vary wildly
> it may be better to go for library functions instead. IMHO the TKIP key
> computation is such a case, it's trivial for a driver to call phase1 and
> phase2 when required.
> 
> > Also I thought we'd ditch WE as it seems we keep fixing it with gum
> > (as seen by Linville's latest ABI compatibility fix). 
> 
> Well, that was sort of necessary.
> 
> > If that wasn't
> > the case then I'm suggesting it -- can we consider ditching WE?
> 
> Well, no. We can make it a second-class citizen like I did with the
> cfg80211 work where I made it just one userspace interface for cfg80211
> which admittedly sometimes strange behaviour, but it's still there and
> current operations should still work with it (and I'd consider not
> working a bug except if userspace never calls 'commit' and expects
> things to work)
> 
> > I'd say lets just go for a
> > userspace MLME as its already written but I seriously think we need to
> > ditch replace WE first.
> 
> It seems no one has a plan on what to do though.
> 
>  - Jiri's trying to fix the SMP issues. That's great.
>  - Jiri also would like to expand ieee80211_conf.c, the stuff I
>started for cfg80211
>  - I'd like to see a header cleanup, it's necessary. Part of the problem
>here is all the sub-ioctl WE foo. Clean that up by moving them into
>cfg80211 as required, there's basically one user, wpa_supplicant (and
>maybe hostapd), screw the others if there are any

While wpa_supplicant is certainly the main client for stuff directly
related to setting up a connection, there are quite a few other users of
general WE calls to pull information out of the card, or to receive scan
events.  So if you want maximum compatibility for a limited amount of
work, you can probably consider wpa_supplicant the only client of

(s = set, g = get)

1) [s|g] ENCODEEXT
2) [s|g] AUTH
3) [s|g] MLME
4) [s] RATE
5) [s] FREQ
6) [s] SENS
7) [s] AP
8) [s|g] RTS
9) [s|g] FRAG
10)[s|g] GENIE
11)[s|g] PMKSA

Notable exceptions:
1) [s|g] ENCODE
2) [s|g] MODE (other stuff turns on promiscuous mode)
3) [s|g] SCAN (other stuff needs to do this too)
4) [s|g] POWER (power management does this, not wpa_supplicant)

Of course lots of stuff needs to get RATE, ESSID, AP, FREQ, etc.

Dan

>  - fix people's minds to not expect a perfect solution immediately but
>accept something that can be expanded on later. I think we need to
>accept some breakage in our development trees to get anywhere at all.
> 
> Actually, the last point should be first.
> 
> Enough rant from me for today,
> johannes

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-25 Thread Johannes Berg
On Wed, 2006-10-25 at 13:43 -0400, Luis R. Rodriguez wrote:

> I guess my hope was that d80211 would just be more than a softmac
> implementation. When I hear wireless stack I don't think "softmac
> implementation", I think a robust set of headers and device
> definitions which all wireless devices can share.

Not just that, a bunch of library functions for example for crypto would
be nice too. That's part of why I've been proposing that the tkip stuff
be library functions that the drivers can call if required, instead of
the bitfields.

Currently, there's lot of top-down stuff in d80211, it does things which
depend on flags and then instructs the driver to do something. This is
good for a bunch of things, but in some cases where devices vary wildly
it may be better to go for library functions instead. IMHO the TKIP key
computation is such a case, it's trivial for a driver to call phase1 and
phase2 when required.

> Also I thought we'd ditch WE as it seems we keep fixing it with gum
> (as seen by Linville's latest ABI compatibility fix). 

Well, that was sort of necessary.

> If that wasn't
> the case then I'm suggesting it -- can we consider ditching WE?

Well, no. We can make it a second-class citizen like I did with the
cfg80211 work where I made it just one userspace interface for cfg80211
which admittedly sometimes strange behaviour, but it's still there and
current operations should still work with it (and I'd consider not
working a bug except if userspace never calls 'commit' and expects
things to work)

> I'd say lets just go for a
> userspace MLME as its already written but I seriously think we need to
> ditch replace WE first.

It seems no one has a plan on what to do though.

 - Jiri's trying to fix the SMP issues. That's great.
 - Jiri also would like to expand ieee80211_conf.c, the stuff I
   started for cfg80211
 - I'd like to see a header cleanup, it's necessary. Part of the problem
   here is all the sub-ioctl WE foo. Clean that up by moving them into
   cfg80211 as required, there's basically one user, wpa_supplicant (and
   maybe hostapd), screw the others if there are any
 - fix people's minds to not expect a perfect solution immediately but
   accept something that can be expanded on later. I think we need to
   accept some breakage in our development trees to get anywhere at all.

Actually, the last point should be first.

Enough rant from me for today,
johannes


signature.asc
Description: This is a digitally signed message part


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-25 Thread Luis R. Rodriguez

On 10/24/06, Michael Wu <[EMAIL PROTECTED]> wrote:

On Tuesday 24 October 2006 18:03, Luis R. Rodriguez wrote:
> 1. Anyone working on completing FullMAC support on d80211?
That doesn't really make sense. Fullmac devices should just use WE or cfg80211
because they, for the most part, do what d80211 does in firmware. There are
also strange hybrid devices like ipw2100/ipw2200, but IMHO, it's not worth
trying to bolt d80211 onto those devices unless saner firmware becomes
available.


I guess my hope was that d80211 would just be more than a softmac
implementation. When I hear wireless stack I don't think "softmac
implementation", I think a robust set of headers and device
definitions which all wireless devices can share.

Also I thought we'd ditch WE as it seems we keep fixing it with gum
(as seen by Linville's latest ABI compatibility fix). If that wasn't
the case then I'm suggesting it -- can we consider ditching WE? I
appologize to get seriously off-topic here BTW but think I need to say
this. I mean -- we can keep on advancing WE but I really don't want to
deal with any more sub-ioctl hacks. I think its beeg good for us but I
think we're hitting the limit of its capabilities. Madwifi is an
example of a driver which has been breeded to live in the extremes of
WE -- you can't pack any more brand new ioctls there. Sub-ioctls were
just that -- a hack. Let's stop this and look for a better solution.
How about jumping on Johannes Berg's nl80211/cfg80211 and providing a
new user API through that?


> 2. Who's working on a userspace MLME replacement for d80211 and where
> are we with that?
I think HostAP can handle authentication/association.. or was it
wpa-supplicant? Maybe both..


As confirmed by Simon, wpa_supplicant. OK great.


> 3. Who's doing the endianness/smp testing of d80211 and how far are we
> with that?
The endianness issues seemed fine the last time I checked, and people do seem
to be testing BE enough that to uncover an endianness regression I introduced
when converting WEP code to use crypto api. As for SMP/locking, I think Jiri
Benc knows how to deal with this.


Jiri --- how is that coming along? :)


>
> Lastly, as I have said in previous e-mails -- I agree with a userspace
> daemon but where is it and how long before its ready.. also it may be
> difficult to introduce as a requirement for distributions and for this
> reason I am suggesting going with in-kernel regulatory domain control
> and now perhaps in-kernel MLME for a first stable push of d80211,
> specially since only... 3 in-kernel drivers currently use d80211!
>
4 once p54 is merged, and more to come as I get to them.

/me pokes Linville.


and zd1211rw too, now that I'm done with sending RFC for regdomains
work. If I don't have time I'll pass what I have to you.


I think time working on the in-kernel MLME is well worth it since I would like
softmac drivers to have feature parity with fullmac drivers. Anything beyond
that can go to userspace as far as I'm concerned. (so transitioning to d80211
based drivers won't involve too much pain unless you really want to take
advantage of new features)


Not having in-kernel MLME does not necessarily mean having a disparity
between SoftMAC and FullMAC. To me its more of a speed issue and a
requirement of having a userspace daemons before using a SoftMAC
wireless device. I can see distributions having issues with the
requirement of a new userspace daemon in order to use wireless SoftMAC
devices and would argue that if we can complete the in-kernel MLME
that perhaps we should do this for the introduction of d80211 to
stable and later on move it to userspace. I'd say lets just go for a
userspace MLME as its already written but I seriously think we need to
ditch replace WE first.


Having some basic regulatory domain control in d80211 in the kernel should be
okay for now just to make sure all drivers like the api presented. Working
out the details of how to move the d80211 side stuff to userspace should be
orthogonal to the driver interface and can be dealt with later, IMHO.


That is only true if we stick with WE.

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-25 Thread Luis R. Rodriguez

On 10/25/06, Jiri Benc <[EMAIL PROTECTED]> wrote:

On Tue, 24 Oct 2006 13:41:12 -0400, Luis R. Rodriguez wrote:
> Sure -- we can have on the ieee80211_conf struct an array of all
> regulatory domains stack values that the device supports
> (REGDOMAIN_FCC or 0x10 for FCC for example) if the developer agrees
> the device has been certified to match the regulatory domain
> restrictions as the stack defines it. I believe most modern devices
> adhere to the PtMP restrictions pretty loosely and the magic is left
> to the driver when the device is being certified so ultimately I see
> devices sharing regulatory domains restrictions rather than defining
> their own though. I'd consider defining your own device-specific
> regulatory domain would be more of an exception we'd have to deal with
> but that remains to be seen yet huh.

It sounds overcomplicated to me. I'd rather like to see something like
this:
1. As part of the initialization of the hardware, the driver detects
   that the device is certified for (say) channels 2 to 10 (that's not
   a real-life example, fortunately :-)).


BTW we should also record the max Intentional Radiator (IR) power and
define the default antenna gain then. That way the max IR to be used
can be restricted by regdomain max EIRP - antenna gain. Currently
d80211.h ieee80211_conf has a u8 power_level and u8 antenna_max. I
assume antenna_max here is max antenna gain, but is power_level max IR
or max computed EIRP? If its max IR then great.


2. The driver reports this somewhere (softmac drivers would report this
   to the stack).


The the ieee80211_conf struct should work.


3. Based on outside conditions (userspace - or something - tells us
   about actual regdomain), the stack (or whatever) calls the driver and
   passes allowed channels etc. to it (if the driver wants that
   information). There is already previously reported driver's
   limitation taken in the account in that information.


BTW this was what I intended for phase I for ieee80211_regdomain on
d80211. Currently d80211 drivers define their channels as an array.
After we cleared how we'd integrate it into the stack I then wanted to
write a get_reg_channels(dev) and we'd use the device's mode and stack
regdomain to give the driver back all valid channels for the stack's
current regdomain.


4. If the outside conditions change (802.11d or user emigrates or
   something) that callback is called again with a new data.


Through this approach the question then becomes do we inspect the
device's saved limitations and compare to available regulatory domains
and

(a) based on that comparison select only a few regulatory domains that
the device supports, or
(b) do we do allow the device to jump to any regulatory domain and
later do the proper validation?

I think (a) is the way to go and is similar to what I suggested in the
quoted text above but is more of a dynamic autoselection of supported
regultory domains vs the driver-writer-lists-supported-regdomains
approach.

This is overcomplicated but AFAICT no other wireless stack has taken a
good stab at assuring devices comply to regdomains centrally through a
wireless stack. The problem is that dealing with all wireless devices
and coming up with a way to assure all do comply to regulatory domains
in a meaninful logical way without regard to where the MLME is
implemented is slightly overcomplicated.


I.e.:
- I see no point in building a list of regdomains suported by the
  hardware.


Point taken -- the regulatory domain should just mask the device's
capabilities based on locale.


- It's pretty common that the device has some limitation stated in the
  EPROM and the stack/something should deal with it in a way that is easy
  to use in a driver.


ACK

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-25 Thread Jiri Benc
On Tue, 24 Oct 2006 13:41:12 -0400, Luis R. Rodriguez wrote:
> Sure -- we can have on the ieee80211_conf struct an array of all
> regulatory domains stack values that the device supports
> (REGDOMAIN_FCC or 0x10 for FCC for example) if the developer agrees
> the device has been certified to match the regulatory domain
> restrictions as the stack defines it. I believe most modern devices
> adhere to the PtMP restrictions pretty loosely and the magic is left
> to the driver when the device is being certified so ultimately I see
> devices sharing regulatory domains restrictions rather than defining
> their own though. I'd consider defining your own device-specific
> regulatory domain would be more of an exception we'd have to deal with
> but that remains to be seen yet huh.

It sounds overcomplicated to me. I'd rather like to see something like
this:
1. As part of the initialization of the hardware, the driver detects
   that the device is certified for (say) channels 2 to 10 (that's not
   a real-life example, fortunately :-)).
2. The driver reports this somewhere (softmac drivers would report this
   to the stack).
3. Based on outside conditions (userspace - or something - tells us
   about actual regdomain), the stack (or whatever) calls the driver and
   passes allowed channels etc. to it (if the driver wants that
   information). There is already previously reported driver's
   limitation taken in the account in that information.
4. If the outside conditions change (802.11d or user emigrates or
   something) that callback is called again with a new data.

I.e.:
- I see no point in building a list of regdomains suported by the
  hardware.
- It's pretty common that the device has some limitation stated in the
  EPROM and the stack/something should deal with it in a way that is easy
  to use in a driver.

Thanks,

 Jiri

-- 
Jiri Benc
SUSE Labs
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Dan Williams
On Tue, 2006-10-24 at 15:56 -0700, Simon Barber wrote:
> Hi Luis,
> 
> The CVS version of wpa_supplicant implements a user space Client MLME.
> 
> Are there any FullMAC clients that do not also do regulatory in the
> hardware? (Intel 2100/2200?)

Atmel (atmel.c) has in-driver regulatory domain logic, though it uses a
firmware default domain.  But that can be overridden by the user, and it
appears as if the firmware just accepts it.

Orinoco, Airo, Prism54 (fullmac) all have a channel list in the driver
for validation, though the firmware on both appears to enforce
regulatory domains and the drivers return errors or the firmware refuses
to associate when given channels outside the current regulatory domain.

In short, it would be nice to have a common table of regulatory domain
information (at least channel #s, frequency #s, and regulatory domain
lookup tables) somewhere in the ieee80211 stack where even fullmac
drivers could get to it, if just to reduce code duplication.

Dan

> 
> Simon
>  
> 
> -Original Message-
> From: Luis R. Rodriguez [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, October 24, 2006 3:03 PM
> To: Simon Barber
> Cc: David Kimdon; netdev@vger.kernel.org; Jiri Benc; John W. Linville;
> Jean Tourrilhes
> Subject: Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211
> 
> On 10/24/06, Simon Barber <[EMAIL PROTECTED]> wrote:
> > The Client MLME code in the kernel was only ever written to be used 
> > for quick testing. It does not have good roaming performance, and was 
> > never intended to be a complete client. The right place for the Client
> 
> > MLME is in userspace, where it can be closely coupled with the 
> > supplicant, and better scanning and roaming decisions can be made. If 
> > the Client MLME is removed from the kernel, then a userspace part is 
> > always required in order for 802.11 to be used at all. (It's already 
> > required in order to use any of the recent security modes, or have 
> > automatic network selection, or decent roaming). In this case the 
> > regulatory constraints can be set in a privileged userspace deamon.
> 
> We also have to take into consideration FullMAC devices where we don't
> need an MLME implemented in kernel/userspace and how regulatory domain
> control will dictate their behaviour. My approach here was to support a
> map between stack regulatory domain values and device regulatory domain
> values. This is currently provided by ieee80211_regdomains. We can add
> to ieee80211_conf a ieee80211_regulatory_map and if defined
> d80211 will simply call the the stack's set regdomain which the device
> implements and sets the regdomain internally to whatever the device
> should have.
> 
> Mind you I realize most new devices are taking the SoftMAC design
> approach and while these vary ultimately I do agree with your point.
> 
> All that said though:
> 
> 1. Anyone working on completing FullMAC support on d80211?
> 2. Who's working on a userspace MLME replacement for d80211 and where
> are we with that?
> 3. Who's doing the endianness/smp testing of d80211 and how far are we
> with that?
> 
> Lastly, as I have said in previous e-mails -- I agree with a userspace
> daemon but where is it and how long before its ready.. also it may be
> difficult to introduce as a requirement for distributions and for this
> reason I am suggesting going with in-kernel regulatory domain control
> and now perhaps in-kernel MLME for a first stable push of d80211,
> specially since only... 3 in-kernel drivers currently use d80211!
> 
>   Luis
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Simon Barber
Hi Luis,

The CVS version of wpa_supplicant implements a user space Client MLME.

Are there any FullMAC clients that do not also do regulatory in the
hardware? (Intel 2100/2200?)

Simon
 

-Original Message-
From: Luis R. Rodriguez [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, October 24, 2006 3:03 PM
To: Simon Barber
Cc: David Kimdon; netdev@vger.kernel.org; Jiri Benc; John W. Linville;
Jean Tourrilhes
Subject: Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

On 10/24/06, Simon Barber <[EMAIL PROTECTED]> wrote:
> The Client MLME code in the kernel was only ever written to be used 
> for quick testing. It does not have good roaming performance, and was 
> never intended to be a complete client. The right place for the Client

> MLME is in userspace, where it can be closely coupled with the 
> supplicant, and better scanning and roaming decisions can be made. If 
> the Client MLME is removed from the kernel, then a userspace part is 
> always required in order for 802.11 to be used at all. (It's already 
> required in order to use any of the recent security modes, or have 
> automatic network selection, or decent roaming). In this case the 
> regulatory constraints can be set in a privileged userspace deamon.

We also have to take into consideration FullMAC devices where we don't
need an MLME implemented in kernel/userspace and how regulatory domain
control will dictate their behaviour. My approach here was to support a
map between stack regulatory domain values and device regulatory domain
values. This is currently provided by ieee80211_regdomains. We can add
to ieee80211_conf a ieee80211_regulatory_map and if defined
d80211 will simply call the the stack's set regdomain which the device
implements and sets the regdomain internally to whatever the device
should have.

Mind you I realize most new devices are taking the SoftMAC design
approach and while these vary ultimately I do agree with your point.

All that said though:

1. Anyone working on completing FullMAC support on d80211?
2. Who's working on a userspace MLME replacement for d80211 and where
are we with that?
3. Who's doing the endianness/smp testing of d80211 and how far are we
with that?

Lastly, as I have said in previous e-mails -- I agree with a userspace
daemon but where is it and how long before its ready.. also it may be
difficult to introduce as a requirement for distributions and for this
reason I am suggesting going with in-kernel regulatory domain control
and now perhaps in-kernel MLME for a first stable push of d80211,
specially since only... 3 in-kernel drivers currently use d80211!

  Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Michael Wu
On Tuesday 24 October 2006 18:03, Luis R. Rodriguez wrote:
> 1. Anyone working on completing FullMAC support on d80211?
That doesn't really make sense. Fullmac devices should just use WE or cfg80211 
because they, for the most part, do what d80211 does in firmware. There are 
also strange hybrid devices like ipw2100/ipw2200, but IMHO, it's not worth 
trying to bolt d80211 onto those devices unless saner firmware becomes 
available.

> 2. Who's working on a userspace MLME replacement for d80211 and where
> are we with that?
I think HostAP can handle authentication/association.. or was it 
wpa-supplicant? Maybe both..

> 3. Who's doing the endianness/smp testing of d80211 and how far are we
> with that?
The endianness issues seemed fine the last time I checked, and people do seem 
to be testing BE enough that to uncover an endianness regression I introduced 
when converting WEP code to use crypto api. As for SMP/locking, I think Jiri 
Benc knows how to deal with this.

>
> Lastly, as I have said in previous e-mails -- I agree with a userspace
> daemon but where is it and how long before its ready.. also it may be
> difficult to introduce as a requirement for distributions and for this
> reason I am suggesting going with in-kernel regulatory domain control
> and now perhaps in-kernel MLME for a first stable push of d80211,
> specially since only... 3 in-kernel drivers currently use d80211!
>
4 once p54 is merged, and more to come as I get to them.

/me pokes Linville.

I think time working on the in-kernel MLME is well worth it since I would like 
softmac drivers to have feature parity with fullmac drivers. Anything beyond 
that can go to userspace as far as I'm concerned. (so transitioning to d80211 
based drivers won't involve too much pain unless you really want to take 
advantage of new features)

Having some basic regulatory domain control in d80211 in the kernel should be 
okay for now just to make sure all drivers like the api presented. Working 
out the details of how to move the d80211 side stuff to userspace should be 
orthogonal to the driver interface and can be dealt with later, IMHO. 

-Michael Wu


pgpWGSngKV0AL.pgp
Description: PGP signature


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Luis R. Rodriguez

On 10/24/06, Simon Barber <[EMAIL PROTECTED]> wrote:

The Client MLME code in the kernel was only ever written to be used for
quick testing. It does not have good roaming performance, and was never
intended to be a complete client. The right place for the Client MLME is
in userspace, where it can be closely coupled with the supplicant, and
better scanning and roaming decisions can be made. If the Client MLME is
removed from the kernel, then a userspace part is always required in
order for 802.11 to be used at all. (It's already required in order to
use any of the recent security modes, or have automatic network
selection, or decent roaming). In this case the regulatory constraints
can be set in a privileged userspace deamon.


We also have to take into consideration FullMAC devices where we don't
need an MLME implemented in kernel/userspace and how regulatory domain
control will dictate their behaviour. My approach here was to support
a map between stack regulatory domain values and device regulatory
domain values. This is currently provided by ieee80211_regdomains. We
can add to ieee80211_conf a ieee80211_regulatory_map and if defined
d80211 will simply call the the stack's set regdomain which the device
implements and sets the regdomain internally to whatever the device
should have.

Mind you I realize most new devices are taking the SoftMAC design
approach and while these vary ultimately I do agree with your point.

All that said though:

1. Anyone working on completing FullMAC support on d80211?
2. Who's working on a userspace MLME replacement for d80211 and where
are we with that?
3. Who's doing the endianness/smp testing of d80211 and how far are we
with that?

Lastly, as I have said in previous e-mails -- I agree with a userspace
daemon but where is it and how long before its ready.. also it may be
difficult to introduce as a requirement for distributions and for this
reason I am suggesting going with in-kernel regulatory domain control
and now perhaps in-kernel MLME for a first stable push of d80211,
specially since only... 3 in-kernel drivers currently use d80211!

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Simon Barber
The Client MLME code in the kernel was only ever written to be used for
quick testing. It does not have good roaming performance, and was never
intended to be a complete client. The right place for the Client MLME is
in userspace, where it can be closely coupled with the supplicant, and
better scanning and roaming decisions can be made. If the Client MLME is
removed from the kernel, then a userspace part is always required in
order for 802.11 to be used at all. (It's already required in order to
use any of the recent security modes, or have automatic network
selection, or decent roaming). In this case the regulatory constraints
can be set in a privileged userspace deamon.

Simon

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of David Kimdon
Sent: Tuesday, October 24, 2006 7:02 AM
To: Luis R. Rodriguez
Cc: netdev@vger.kernel.org; Jiri Benc; John W. Linville; Jean Tourrilhes
Subject: Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

Hi,

> The following patches extend 802.11 regulatory domain support of the
> d80211 wireless stack through two modules:
> 
> 1. ieee80211_regdomains
> 2. iso3166-1

I am glad to see this work, this is something that we need a solution
for.  I do wonder if we can push most of this out of the kernel and into
userspace.  We could hard code a single set of constraints in the kernel
which may be used world wide (802.11b channels 1-11, is that allowed
everywhere?).  Then we have a userspace tool which passes updated
regulatory information into the kernel based on the user's country
input.

-David
-
To unsubscribe from this list: send the line "unsubscribe netdev" in the
body of a message to [EMAIL PROTECTED] More majordomo info at
http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Luis R. Rodriguez

On 10/24/06, David Kimdon <[EMAIL PROTECTED]> wrote:

Hi,

> The following patches extend 802.11 regulatory domain support of the
> d80211 wireless stack through two modules:
>
> 1. ieee80211_regdomains
> 2. iso3166-1

I am glad to see this work, this is something that we need a solution
for.  I do wonder if we can push most of this out of the kernel and
into userspace.  We could hard code a single set of constraints in the
kernel which may be used world wide (802.11b channels 1-11, is that
allowed everywhere?).


Unforunatley there is no easy middle ground that will make everyone
happy. What I defined as World is there just as most devices seem to
have such regulatory domain and what I defined it as is a compromise
in what seems to be the middle of all restrictions. There is no easy
answer here but I think the best is to consider that there is just no
"World" regulatory domain unless all regulatory domain agencies do
come up with one. We should see if legal can work with a few
regulatory agencies to see if at least a few will agree on one...


Then we have a userspace tool which passes
updated regulatory information into the kernel based on the user's
country input.


Please see my more thorough reply to Johannes as he asked this first.
But yes -- you are right. The main reason why this has been put in the
kernel was to make a userspace daemon optional as it would allow us to
easily introduce regulatory domain control without forcing
distributions to use a new daemon immediately. Also we need to iron
out userspace communication before even considering a userspace
regulatory daemon. Keep in mind the Kconfig makes the regulatory
domains defined optional except World compliant regulatory domain
already.

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Luis R. Rodriguez

On 10/24/06, John W. Linville <[EMAIL PROTECTED]> wrote:

On Tue, Oct 24, 2006 at 01:33:32AM -0400, Luis R. Rodriguez wrote:
> On 10/23/06, Johannes Berg <[EMAIL PROTECTED]> wrote:
> >On Mon, 2006-10-23 at 18:41 -0400, Luis R. Rodriguez wrote:
> >
> >> The current setup on d80211.h makes regulatory domains device
> >> specific. I believe this should be changed to be stack-specific --
> >> that is, all drivers adhere to the restrictions set by the stack's
> >> current regulatory domain.
> >
> >There should be a way to have a certain device restrict that even
> >further, if the driver wants to allow operation only in a domain that
> >the device has been certified for (because it may malfunction otherwise,
> >for example).
>
> Sure good idea -- we can provide a device specific regulatory domain
> if necessary. We can easily introduce a device_regdomains linked list
> on the ieee80211_conf which if not empty the driver will use it, else
> the stack regdomain is used. The ieee80211_regdomains module already
> provides the interfaces for the manipulation of such list. Pretty easy
> fix, fortunately.

It might be nice if this could be a "logical AND" operation?  So if the
device was certified for X, Y, and Z and the current domain allows V,
W, and X then only X would be allowed.  Perhaps it is too complicated
to be worthwhile, but it seems doable and would be a nice flexibility.


Sure -- we can have on the ieee80211_conf struct an array of all
regulatory domains stack values that the device supports
(REGDOMAIN_FCC or 0x10 for FCC for example) if the developer agrees
the device has been certified to match the regulatory domain
restrictions as the stack defines it. I believe most modern devices
adhere to the PtMP restrictions pretty loosely and the magic is left
to the driver when the device is being certified so ultimately I see
devices sharing regulatory domains restrictions rather than defining
their own though. I'd consider defining your own device-specific
regulatory domain would be more of an exception we'd have to deal with
but that remains to be seen yet huh.

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Luis R. Rodriguez

On 10/24/06, Johannes Berg <[EMAIL PROTECTED]> wrote:

Alright, here's more now that I can think clearly again :)

> ISO 3166-1, as part of the ISO 3166 standard, provides codes for the names
> of countries and dependent areas. It was first published in 1974 by
> the International Organization for Standardization (ISO) and defines three
> different codes for each area:
>
> * ISO 3166-1 alpha-2, a two-letter system with many applications,
>   most notably the Internet top-level domains (ccTLD) for countries.
> * ISO 3166-1 alpha-3, a three-letter system.
> * ISO 3166-1 numeric, a three-digit numerical system, which is
> identical to that defined by the United Nations Statistical Division.
>
> Although this would usually be only used in userspace IEEE-802.11d
> has made use of ISO-3166-1 alpha 3. This mapping was added
> to enhance stack support for IEEE-802.11d and 802.11 Regulatory
> Domain control. ieee80211_regdomains makes use of this module
> by creating a map of iso3166 alpha3 country code to stack
> regulatory domain.

But if 802.11d only requires alpha 3, why put all the other stuff into
the kernel as well?


It would have been a half ass job for kernel iso3166-1 support, also
though -- I feel we should leave this as-is until we have an ironed
out userspace regulatory daemon. This would make regulatory
domain/802.11d/MLME daemon optional to introduce for distributions
until that part is done and distributions have happily adopted
something. Since its a complete iso3166-1 db I wondered if any other
modules would make use of it. An example of a similar db in the kernel
is for Native Language Support (NLS) for filesystems. If no modules
can make use of it the quicker this should be removed once we have a
userspace API ready.

CC'ing LKML to see if any other module can make use of this.

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread David Kimdon
Hi,

> The following patches extend 802.11 regulatory domain support of the
> d80211 wireless stack through two modules:
> 
> 1. ieee80211_regdomains
> 2. iso3166-1

I am glad to see this work, this is something that we need a solution
for.  I do wonder if we can push most of this out of the kernel and
into userspace.  We could hard code a single set of constraints in the
kernel which may be used world wide (802.11b channels 1-11, is that
allowed everywhere?).  Then we have a userspace tool which passes
updated regulatory information into the kernel based on the user's
country input.

-David
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread John W. Linville
On Tue, Oct 24, 2006 at 01:33:32AM -0400, Luis R. Rodriguez wrote:
> On 10/23/06, Johannes Berg <[EMAIL PROTECTED]> wrote:
> >On Mon, 2006-10-23 at 18:41 -0400, Luis R. Rodriguez wrote:
> >
> >> The current setup on d80211.h makes regulatory domains device
> >> specific. I believe this should be changed to be stack-specific --
> >> that is, all drivers adhere to the restrictions set by the stack's
> >> current regulatory domain.
> >
> >There should be a way to have a certain device restrict that even
> >further, if the driver wants to allow operation only in a domain that
> >the device has been certified for (because it may malfunction otherwise,
> >for example).
> 
> Sure good idea -- we can provide a device specific regulatory domain
> if necessary. We can easily introduce a device_regdomains linked list
> on the ieee80211_conf which if not empty the driver will use it, else
> the stack regdomain is used. The ieee80211_regdomains module already
> provides the interfaces for the manipulation of such list. Pretty easy
> fix, fortunately.

It might be nice if this could be a "logical AND" operation?  So if the
device was certified for X, Y, and Z and the current domain allows V,
W, and X then only X would be allowed.  Perhaps it is too complicated
to be worthwhile, but it seems doable and would be a nice flexibility.

John
-- 
John W. Linville
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-24 Thread Johannes Berg
Alright, here's more now that I can think clearly again :)

> ISO 3166-1, as part of the ISO 3166 standard, provides codes for the names
> of countries and dependent areas. It was first published in 1974 by
> the International Organization for Standardization (ISO) and defines three
> different codes for each area:
> 
> * ISO 3166-1 alpha-2, a two-letter system with many applications,
>   most notably the Internet top-level domains (ccTLD) for countries.
> * ISO 3166-1 alpha-3, a three-letter system.
> * ISO 3166-1 numeric, a three-digit numerical system, which is
> identical to that defined by the United Nations Statistical Division.
> 
> Although this would usually be only used in userspace IEEE-802.11d
> has made use of ISO-3166-1 alpha 3. This mapping was added
> to enhance stack support for IEEE-802.11d and 802.11 Regulatory
> Domain control. ieee80211_regdomains makes use of this module
> by creating a map of iso3166 alpha3 country code to stack
> regulatory domain.

But if 802.11d only requires alpha 3, why put all the other stuff into
the kernel as well?

johannes
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-23 Thread Luis R. Rodriguez

On 10/23/06, Johannes Berg <[EMAIL PROTECTED]> wrote:

On Mon, 2006-10-23 at 18:41 -0400, Luis R. Rodriguez wrote:

> The current setup on d80211.h makes regulatory domains device
> specific. I believe this should be changed to be stack-specific --
> that is, all drivers adhere to the restrictions set by the stack's
> current regulatory domain.

There should be a way to have a certain device restrict that even
further, if the driver wants to allow operation only in a domain that
the device has been certified for (because it may malfunction otherwise,
for example).


Sure good idea -- we can provide a device specific regulatory domain
if necessary. We can easily introduce a device_regdomains linked list
on the ieee80211_conf which if not empty the driver will use it, else
the stack regdomain is used. The ieee80211_regdomains module already
provides the interfaces for the manipulation of such list. Pretty easy
fix, fortunately.


I'll probably have more comments later, really tired now though.


Great, thanks.

 Luis
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [PATCH 0/3] Add Regulatory Domain support to d80211

2006-10-23 Thread Johannes Berg
On Mon, 2006-10-23 at 18:41 -0400, Luis R. Rodriguez wrote:

> The current setup on d80211.h makes regulatory domains device
> specific. I believe this should be changed to be stack-specific --
> that is, all drivers adhere to the restrictions set by the stack's
> current regulatory domain.

There should be a way to have a certain device restrict that even
further, if the driver wants to allow operation only in a domain that
the device has been certified for (because it may malfunction otherwise,
for example).

I'll probably have more comments later, really tired now though.

johannes


signature.asc
Description: This is a digitally signed message part