netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 5/7] d80211: indicate if unassociate/radio off status
@ 2006-08-28 20:49 mabbas
  2006-08-28 21:17 ` Michael Wu
  2006-09-21 17:01 ` Jiri Benc
  0 siblings, 2 replies; 23+ messages in thread
From: mabbas @ 2006-08-28 20:49 UTC (permalink / raw)
  To: netdev; +Cc: jbenc

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: d80211-wname.patch --]
[-- Type: text/x-patch, Size: 896 bytes --]


This patch indicate unassociated and radio off status
in name field

Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com>

diff --git a/net/d80211/ieee80211_ioctl.c b/net/d80211/ieee80211_ioctl.c
index 89a58e3..44b2698 100644
--- a/net/d80211/ieee80211_ioctl.c
+++ b/net/d80211/ieee80211_ioctl.c
@@ -1538,6 +1538,19 @@ static int ieee80211_ioctl_giwname(struc
 				   char *name, char *extra)
 {
 	struct ieee80211_local *local = dev->ieee80211_ptr;
+	struct ieee80211_sub_if_data *sdata;
+
+	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
+	if (!local->conf.radio_enabled) {
+        	strcpy(name, "radio off");
+                return 0;
+	} else if (sdata->type == IEEE80211_IF_TYPE_STA) {
+		if ((sdata->u.sta.state != IEEE80211_ASSOCIATED) ||
+		    (sdata->u.sta.probereq_poll)) {
+			strcpy(name, "unassociated");
+			return 0;
+		}
+	}
 
 	switch (local->conf.phymode) {
 	case MODE_IEEE80211A:

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-28 20:49 [PATCH 5/7] d80211: indicate if unassociate/radio off status mabbas
@ 2006-08-28 21:17 ` Michael Wu
  2006-08-29 17:55   ` Jouni Malinen
  2006-09-21 17:01 ` Jiri Benc
  1 sibling, 1 reply; 23+ messages in thread
From: Michael Wu @ 2006-08-28 21:17 UTC (permalink / raw)
  To: mabbas; +Cc: netdev, jbenc

[-- Attachment #1: Type: text/plain, Size: 298 bytes --]

It would be helpful if you inlined your patches instead of attaching them next 
time.

I'm not comfortable with using the name for this purpose. Don't we just report 
00:00:00:00:00:00 when not associated? Also, for radio off, wasn't that being 
covered by the rfkill patches?

-Michael Wu

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-28 21:17 ` Michael Wu
@ 2006-08-29 17:55   ` Jouni Malinen
  2006-08-29 22:28     ` Mohamed Abbas
  0 siblings, 1 reply; 23+ messages in thread
From: Jouni Malinen @ 2006-08-29 17:55 UTC (permalink / raw)
  To: Michael Wu; +Cc: mabbas, netdev, jbenc

On Mon, Aug 28, 2006 at 02:17:34PM -0700, Michael Wu wrote:

> It would be helpful if you inlined your patches instead of attaching them next 
> time.

Agreed.

> I'm not comfortable with using the name for this purpose.

And agreed. wireless.h has this to say about SIOCGIWNAME:

#define SIOCGIWNAME     0x8B01          /* get name == wireless protocol */
/* SIOCGIWNAME is used to verify the presence of Wireless Extensions.
 * Common values : "IEEE 802.11-DS", "IEEE 802.11-FH", "IEEE 802.11b"...
 * Don't put the name of your driver there, it's useless. */


The proposed use here is against this and should not be applied.
SIOCGIWAP can be used to indicate association status and SIOCGIWTXPOW
can be used to indicate whether TX is powered which is quite close to
radio off indication.

-- 
Jouni Malinen                                            PGP id EFC895FA

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-29 17:55   ` Jouni Malinen
@ 2006-08-29 22:28     ` Mohamed Abbas
  2006-08-29 22:50       ` Michael Wu
  0 siblings, 1 reply; 23+ messages in thread
From: Mohamed Abbas @ 2006-08-29 22:28 UTC (permalink / raw)
  To: Jouni Malinen; +Cc: Michael Wu, netdev, jbenc

Jouni Malinen wrote:

>On Mon, Aug 28, 2006 at 02:17:34PM -0700, Michael Wu wrote:
>
>  
>
>>It would be helpful if you inlined your patches instead of attaching them next 
>>time.
>>    
>>
>
>Agreed.
>
>  
>
>>I'm not comfortable with using the name for this purpose.
>>    
>>
>
>And agreed. wireless.h has this to say about SIOCGIWNAME:
>
>#define SIOCGIWNAME     0x8B01          /* get name == wireless protocol */
>/* SIOCGIWNAME is used to verify the presence of Wireless Extensions.
> * Common values : "IEEE 802.11-DS", "IEEE 802.11-FH", "IEEE 802.11b"...
> * Don't put the name of your driver there, it's useless. */
>
>
>The proposed use here is against this and should not be applied.
>SIOCGIWAP can be used to indicate association status and SIOCGIWTXPOW
>can be used to indicate whether TX is powered which is quite close to
>radio off indication.
>
>  
>
to associated to a network i do the following
#iwconfig wlan0 essid {some name} channel X ap {bssid of the AP}
after I issues this command  SIOCGIWAP will always report the bssid no 
matter what the status of our link.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-29 22:28     ` Mohamed Abbas
@ 2006-08-29 22:50       ` Michael Wu
  2006-08-29 23:01         ` Michael Wu
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Wu @ 2006-08-29 22:50 UTC (permalink / raw)
  To: Mohamed Abbas; +Cc: Jouni Malinen, netdev, jbenc

[-- Attachment #1: Type: text/plain, Size: 220 bytes --]

On Tuesday 29 August 2006 15:28, Mohamed Abbas wrote:
>  SIOCGIWAP will always report the bssid no
> matter what the status of our link.
That is not the case at the moment. Were you planning to change that?

-Michael Wu

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-29 22:50       ` Michael Wu
@ 2006-08-29 23:01         ` Michael Wu
  2006-08-30 13:41           ` Dan Williams
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Wu @ 2006-08-29 23:01 UTC (permalink / raw)
  To: Mohamed Abbas; +Cc: Jouni Malinen, netdev, jbenc

[-- Attachment #1: Type: text/plain, Size: 473 bytes --]

On Tuesday 29 August 2006 15:50, Michael Wu wrote:
> On Tuesday 29 August 2006 15:28, Mohamed Abbas wrote:
> >  SIOCGIWAP will always report the bssid no
> > matter what the status of our link.
>
> That is not the case at the moment. Were you planning to change that?
>
Opps, it looks like it is the case. Ignore that.

Perhaps we should make SIOCGIWAP always reflect the AP we're currently 
associated to, and 00:00:00:00:00:00 if there is none.

-Michael Wu

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-29 23:01         ` Michael Wu
@ 2006-08-30 13:41           ` Dan Williams
  2006-08-30 17:22             ` Michael Wu
  0 siblings, 1 reply; 23+ messages in thread
From: Dan Williams @ 2006-08-30 13:41 UTC (permalink / raw)
  To: Michael Wu; +Cc: Mohamed Abbas, Jouni Malinen, netdev, jbenc

On Tue, 2006-08-29 at 16:01 -0700, Michael Wu wrote:
> On Tuesday 29 August 2006 15:50, Michael Wu wrote:
> > On Tuesday 29 August 2006 15:28, Mohamed Abbas wrote:
> > >  SIOCGIWAP will always report the bssid no
> > > matter what the status of our link.
> >
> > That is not the case at the moment. Were you planning to change that?
> >
> Opps, it looks like it is the case. Ignore that.
> 
> Perhaps we should make SIOCGIWAP always reflect the AP we're currently 
> associated to, and 00:00:00:00:00:00 if there is none.
> 
> -Michael Wu

Um, that's how it's supposed to work, and that's how it's always worked.
If you're associated with an access point, its BSSID is returned from
SIOCGIWAP.  If you are not associated, 00:00:00:00:00:00 is returned.
Please don't break that.  The driver should also send the appropriate
netlink IWAP events when it gets disconnected or when a successful
connection occurs using wireless_send_event().

If a valid BSSID is returned from an SIOCGIWAP, it's assumed that that
access point will allow your traffic to pass, i.e. all required
association and authentication has successfully completed.

SIOCGIWAP behavior does _not_ necessarily reflect what BSSID is set with
SIOCSIWAP.

Dan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-30 13:41           ` Dan Williams
@ 2006-08-30 17:22             ` Michael Wu
  0 siblings, 0 replies; 23+ messages in thread
From: Michael Wu @ 2006-08-30 17:22 UTC (permalink / raw)
  To: Dan Williams; +Cc: Mohamed Abbas, Jouni Malinen, netdev, jbenc

[-- Attachment #1: Type: text/plain, Size: 449 bytes --]

On Wednesday 30 August 2006 06:41, Dan Williams wrote:
> Um, that's how it's supposed to work, and that's how it's always worked.
> If you're associated with an access point, its BSSID is returned from
> SIOCGIWAP.  If you are not associated, 00:00:00:00:00:00 is returned.
> Please don't break that.
It's already broken in d80211, AFAICT. That's why I replied to myself, after 
checking how the implementation actually works.

-Michael Wu

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-08-28 20:49 [PATCH 5/7] d80211: indicate if unassociate/radio off status mabbas
  2006-08-28 21:17 ` Michael Wu
@ 2006-09-21 17:01 ` Jiri Benc
  2006-09-21 19:03   ` Dan Williams
  1 sibling, 1 reply; 23+ messages in thread
From: Jiri Benc @ 2006-09-21 17:01 UTC (permalink / raw)
  To: mabbas; +Cc: netdev

On Mon, 28 Aug 2006 13:49:35 -0700, mabbas wrote:
> This patch indicate unassociated and radio off status
> in name field

NAK.

Fix SIOCGIWAP handler instead.

 Jiri

-- 
Jiri Benc
SUSE Labs

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 17:01 ` Jiri Benc
@ 2006-09-21 19:03   ` Dan Williams
  2006-09-21 19:47     ` mabbas
  0 siblings, 1 reply; 23+ messages in thread
From: Dan Williams @ 2006-09-21 19:03 UTC (permalink / raw)
  To: Jiri Benc; +Cc: mabbas, netdev

On Thu, 2006-09-21 at 19:01 +0200, Jiri Benc wrote:
> On Mon, 28 Aug 2006 13:49:35 -0700, mabbas wrote:
> > This patch indicate unassociated and radio off status
> > in name field
> 
> NAK.
> 
> Fix SIOCGIWAP handler instead.

Right; the _one_ place anyone should ever have to check for unassociated
status is SIOCGIWAP.  That's it.  Lets not put stuff in two different
places.  If it's all 0s, all 4s (stupid prism) or all Fs (i forget who
does that), it's invalid and you're not connected.

About the worst thing we can start doing is having to parse arbitrary
strings to find out driver/card status.  That's the same problem with
"<hidden>" which hope DIES DIES DIES with d80211.  If the AP is hidden,
then it has a _blank_ SSID, not hacked to "<hidden>".

For radio off, that may be a legitimate thing that's not covered in WE
yet.  But isn't that the domain of SIOCGIWPOWER, or is that just used to
set PM modes and not return current status? [1]

Dan

[1] which would seem like an oversight to correct in nl80211

>  Jiri
> 


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 19:03   ` Dan Williams
@ 2006-09-21 19:47     ` mabbas
  2006-09-21 20:30       ` Dan Williams
  0 siblings, 1 reply; 23+ messages in thread
From: mabbas @ 2006-09-21 19:47 UTC (permalink / raw)
  To: Dan Williams; +Cc: Jiri Benc, netdev

Dan Williams wrote:
> On Thu, 2006-09-21 at 19:01 +0200, Jiri Benc wrote:
>   
>> On Mon, 28 Aug 2006 13:49:35 -0700, mabbas wrote:
>>     
>>> This patch indicate unassociated and radio off status
>>> in name field
>>>       
>> NAK.
>>
>> Fix SIOCGIWAP handler instead.
>>     
>
> Right; the _one_ place anyone should ever have to check for unassociated
> status is SIOCGIWAP.  That's it.  Lets not put stuff in two different
> places.  If it's all 0s, all 4s (stupid prism) or all Fs (i forget who
> does that), it's invalid and you're not connected.
>
> About the worst thing we can start doing is having to parse arbitrary
> strings to find out driver/card status.  That's the same problem with
> "<hidden>" which hope DIES DIES DIES with d80211.  If the AP is hidden,
> then it has a _blank_ SSID, not hacked to "<hidden>".
>
> For radio off, that may be a legitimate thing that's not covered in WE
> yet.  But isn't that the domain of SIOCGIWPOWER, or is that just used to
> set PM modes and not return current status? [1]
>
> Dan
>
> [1] which would seem like an oversight to correct in nl80211
>
>   

SIOCGIWPOWER is for power save mode it has nothing to do with radio off, we can 
indicate radio off in txpower field i guess. I have question regarding SIOCGIWAP. if
I do #iwconfig ap 00:13:23:87:150:150, wont iwconfig always show  00:13:23:87:150:150 
for SIOCGIWAP regardless if we associated or not? can we display blank in this case to 
indicate not connected?
Mohamed 

 

>>  Jiri
>>
>>     

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 19:47     ` mabbas
@ 2006-09-21 20:30       ` Dan Williams
  2006-09-21 20:39         ` mabbas
  2006-09-22  8:32         ` [PATCH 5/7] d80211: indicate if unassociate/radio off status Johannes Berg
  0 siblings, 2 replies; 23+ messages in thread
From: Dan Williams @ 2006-09-21 20:30 UTC (permalink / raw)
  To: mabbas; +Cc: Jiri Benc, netdev

On Thu, 2006-09-21 at 12:47 -0700, mabbas wrote:
> Dan Williams wrote:
> > On Thu, 2006-09-21 at 19:01 +0200, Jiri Benc wrote:
> >   
> >> On Mon, 28 Aug 2006 13:49:35 -0700, mabbas wrote:
> >>     
> >>> This patch indicate unassociated and radio off status
> >>> in name field
> >>>       
> >> NAK.
> >>
> >> Fix SIOCGIWAP handler instead.
> >>     
> >
> > Right; the _one_ place anyone should ever have to check for unassociated
> > status is SIOCGIWAP.  That's it.  Lets not put stuff in two different
> > places.  If it's all 0s, all 4s (stupid prism) or all Fs (i forget who
> > does that), it's invalid and you're not connected.
> >
> > About the worst thing we can start doing is having to parse arbitrary
> > strings to find out driver/card status.  That's the same problem with
> > "<hidden>" which hope DIES DIES DIES with d80211.  If the AP is hidden,
> > then it has a _blank_ SSID, not hacked to "<hidden>".
> >
> > For radio off, that may be a legitimate thing that's not covered in WE
> > yet.  But isn't that the domain of SIOCGIWPOWER, or is that just used to
> > set PM modes and not return current status? [1]
> >
> > Dan
> >
> > [1] which would seem like an oversight to correct in nl80211
> >
> >   
> 
> SIOCGIWPOWER is for power save mode it has nothing to do with radio off, we can 
> indicate radio off in txpower field i guess. I have question regarding SIOCGIWAP. if
> I do #iwconfig ap 00:13:23:87:150:150, wont iwconfig always show  00:13:23:87:150:150 
> for SIOCGIWAP regardless if we associated or not? can we display blank in this case to 
> indicate not connected?

That's kind a hole in the WE API.  In this case, I think, SIOCGIWAP
should always return the BSSID of the current association, or none if
there is no association.

Doing an iwconfig ap xx:xx:xx:xx:xx:xx should make the driver internally
locked to that BSSID, such that until you clear that lock, SIOCGIWAP
should only show either that BSSID or 00:00:00:00:00:00.  SIOCGIWAP
should not return a valid BSSID when there is no association.

Hopefully nl80211 can fix this omission in WE.

Dan

> Mohamed 
> 
>  
> 
> >>  Jiri
> >>
> >>     


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 20:30       ` Dan Williams
@ 2006-09-21 20:39         ` mabbas
  2006-09-21 22:38           ` Jiri Benc
  2006-09-22  8:32         ` [PATCH 5/7] d80211: indicate if unassociate/radio off status Johannes Berg
  1 sibling, 1 reply; 23+ messages in thread
From: mabbas @ 2006-09-21 20:39 UTC (permalink / raw)
  To: Dan Williams; +Cc: Jiri Benc, netdev

Dan Williams wrote:
> On Thu, 2006-09-21 at 12:47 -0700, mabbas wrote:
>   
>> Dan Williams wrote:
>>     
>>> On Thu, 2006-09-21 at 19:01 +0200, Jiri Benc wrote:
>>>   
>>>       
>>>> On Mon, 28 Aug 2006 13:49:35 -0700, mabbas wrote:
>>>>     
>>>>         
>>>>> This patch indicate unassociated and radio off status
>>>>> in name field
>>>>>       
>>>>>           
>>>> NAK.
>>>>
>>>> Fix SIOCGIWAP handler instead.
>>>>     
>>>>         
>>> Right; the _one_ place anyone should ever have to check for unassociated
>>> status is SIOCGIWAP.  That's it.  Lets not put stuff in two different
>>> places.  If it's all 0s, all 4s (stupid prism) or all Fs (i forget who
>>> does that), it's invalid and you're not connected.
>>>
>>> About the worst thing we can start doing is having to parse arbitrary
>>> strings to find out driver/card status.  That's the same problem with
>>> "<hidden>" which hope DIES DIES DIES with d80211.  If the AP is hidden,
>>> then it has a _blank_ SSID, not hacked to "<hidden>".
>>>
>>> For radio off, that may be a legitimate thing that's not covered in WE
>>> yet.  But isn't that the domain of SIOCGIWPOWER, or is that just used to
>>> set PM modes and not return current status? [1]
>>>
>>> Dan
>>>
>>> [1] which would seem like an oversight to correct in nl80211
>>>
>>>   
>>>       
>> SIOCGIWPOWER is for power save mode it has nothing to do with radio off, we can 
>> indicate radio off in txpower field i guess. I have question regarding SIOCGIWAP. if
>> I do #iwconfig ap 00:13:23:87:150:150, wont iwconfig always show  00:13:23:87:150:150 
>> for SIOCGIWAP regardless if we associated or not? can we display blank in this case to 
>> indicate not connected?
>>     
>
> That's kind a hole in the WE API.  In this case, I think, SIOCGIWAP
> should always return the BSSID of the current association, or none if
> there is no association.
>
> Doing an iwconfig ap xx:xx:xx:xx:xx:xx should make the driver internally
> locked to that BSSID, such that until you clear that lock, SIOCGIWAP
> should only show either that BSSID or 00:00:00:00:00:00.  SIOCGIWAP
> should not return a valid BSSID when there is no association.
>
> Hopefully nl80211 can fix this omission in WE.
>
> Dan
>   
I can fix the patch to do just that if we agree on that.
>   
>> Mohamed 
>>
>>  
>>
>>     
>>>>  Jiri
>>>>
>>>>     
>>>>         

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 20:39         ` mabbas
@ 2006-09-21 22:38           ` Jiri Benc
  2006-09-21 22:55             ` Jean Tourrilhes
  0 siblings, 1 reply; 23+ messages in thread
From: Jiri Benc @ 2006-09-21 22:38 UTC (permalink / raw)
  To: mabbas; +Cc: Dan Williams, netdev, Johannes Berg, Jean Tourrilhes

On Thu, 21 Sep 2006 13:39:18 -0700, mabbas wrote:
> I can fix the patch to do just that if we agree on that.

Well, we need a flag indicating whether we are associated or not. I don't
know about such a flag in WE (hopefully we will have that in nl80211).

Now we have two possibilities:

(a) If a fixed BSSID is set (via SIOCSIWAP), return it from SIOCGIWAP. There
is no way to find out whether we are associated or not. The behaviour is
also inconsistent with the case when no fixed BSSID is set - SIOCGIWAP
returns all zeros or some (random from our POV) BSSID then. So, when you
get a BSSID from SIOCGIWAP, to determine what that means you need to know
if there was a fixed BSSID set. To do that you need to get a BSSID from
SIOCGIWAP. The chicken and egg problem?

(b) SIOCSIWAP returns zeros when we are not associated, BSSID otherwise.
There is no way to find out if you set a fixed BSSID or not. If you
accidentally set a fixed BSSID you will have a hard time finding out why
your card is not associating.

Jean, are there any other possibilities?

If not, (b) seems much more reasonable to me, because:
- The value returned from SIOCGIWAP has a well-defined meaning independent
  of the current configuration of the interface.
- Dan wants that.

 Jiri

-- 
Jiri Benc
SUSE Labs

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 22:38           ` Jiri Benc
@ 2006-09-21 22:55             ` Jean Tourrilhes
  2006-09-22  0:42               ` Jouni Malinen
  0 siblings, 1 reply; 23+ messages in thread
From: Jean Tourrilhes @ 2006-09-21 22:55 UTC (permalink / raw)
  To: Jiri Benc; +Cc: mabbas, Dan Williams, netdev, Johannes Berg

On Fri, Sep 22, 2006 at 12:38:44AM +0200, Jiri Benc wrote:
> On Thu, 21 Sep 2006 13:39:18 -0700, mabbas wrote:
> > I can fix the patch to do just that if we agree on that.
> 
> Well, we need a flag indicating whether we are associated or not. I don't
> know about such a flag in WE (hopefully we will have that in nl80211).

	SIOCSIWAP is that flag.
	Sorry, but the way "struct sockaddr" is designed did not allow
for having an explicit flag, otherwise I would have done it like for
every other commands.

> Now we have two possibilities:
> 
> (a) If a fixed BSSID is set (via SIOCSIWAP), return it from SIOCGIWAP. There
> is no way to find out whether we are associated or not. The behaviour is
> also inconsistent with the case when no fixed BSSID is set - SIOCGIWAP
> returns all zeros or some (random from our POV) BSSID then. So, when you
> get a BSSID from SIOCGIWAP, to determine what that means you need to know
> if there was a fixed BSSID set. To do that you need to get a BSSID from
> SIOCGIWAP. The chicken and egg problem?
> 
> (b) SIOCSIWAP returns zeros when we are not associated, BSSID otherwise.
> There is no way to find out if you set a fixed BSSID or not. If you
> accidentally set a fixed BSSID you will have a hard time finding out why
> your card is not associating.
> 
> Jean, are there any other possibilities?

	Yes, dropping SIOCSIWAP (set) entirely, and keep only
SIOCGIWAP (get).

> If not, (b) seems much more reasonable to me, because:
> - The value returned from SIOCGIWAP has a well-defined meaning independent
>   of the current configuration of the interface.
> - Dan wants that.

	(b) is the correct answer ;-)
	We need to be pragmatic. Very few people need to set a fixed
BSSID. I would even venture to say that in the case of most people
setting a fixed BSSID, it's an error and they should not do it (it
kills roaming, which is a desirable feature). I've yet to find a card
which scanning is broken to the point that you need to fudge the
BSSID.
	There are some drivers that don't support SIOCSIWAP (set), and
it's usually not a problem, users are not complaining about it. That's
why I claim we could drop the (set) support. Of course, we can't do it
because one PhD student at Berkeley need the feature ;-)
	If a program like NetworkManager want to play advanced tricks
with the BSSID and want to know if the user has set a fixed BSSID, it
can monitor SIOCSIWAP events and remember the state.

>  Jiri

	Regards,

	Jean

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 22:55             ` Jean Tourrilhes
@ 2006-09-22  0:42               ` Jouni Malinen
  2006-09-22  0:57                 ` Jean Tourrilhes
  0 siblings, 1 reply; 23+ messages in thread
From: Jouni Malinen @ 2006-09-22  0:42 UTC (permalink / raw)
  To: Jean Tourrilhes; +Cc: Jiri Benc, mabbas, Dan Williams, netdev, Johannes Berg

On Thu, Sep 21, 2006 at 03:55:14PM -0700, Jean Tourrilhes wrote:

> > Jean, are there any other possibilities?
> 
> 	Yes, dropping SIOCSIWAP (set) entirely, and keep only
> SIOCGIWAP (get).

I don't think that this would be acceptable.

> 	We need to be pragmatic. Very few people need to set a fixed
> BSSID. I would even venture to say that in the case of most people
> setting a fixed BSSID, it's an error and they should not do it (it
> kills roaming, which is a desirable feature). I've yet to find a card
> which scanning is broken to the point that you need to fudge the
> BSSID.

Maybe very few _people_ use it directly, but please keep in mind that
programs like wpa_supplicant may control roaming and do it by using this
SIOCSIWAP. In addition, being able to limit AP selection to one specific
BSSID can be quite useful for number of uses.

> 	There are some drivers that don't support SIOCSIWAP (set), and
> it's usually not a problem, users are not complaining about it. That's
> why I claim we could drop the (set) support. Of course, we can't do it
> because one PhD student at Berkeley need the feature ;-)

There's more than one PhD student needing this and I would be very much
against removing it.

-- 
Jouni Malinen                                            PGP id EFC895FA

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-22  0:42               ` Jouni Malinen
@ 2006-09-22  0:57                 ` Jean Tourrilhes
  2006-09-22 22:29                   ` [d80211 patch 1/1] setting bss freq and phymode using rx_status mabbas
  0 siblings, 1 reply; 23+ messages in thread
From: Jean Tourrilhes @ 2006-09-22  0:57 UTC (permalink / raw)
  To: Jouni Malinen; +Cc: Jiri Benc, mabbas, Dan Williams, netdev, Johannes Berg

On Thu, Sep 21, 2006 at 05:42:35PM -0700, Jouni Malinen wrote:
> On Thu, Sep 21, 2006 at 03:55:14PM -0700, Jean Tourrilhes wrote:
> 
> > > Jean, are there any other possibilities?
> > 
> > 	Yes, dropping SIOCSIWAP (set) entirely, and keep only
> > SIOCGIWAP (get).
> 
> I don't think that this would be acceptable.

	I should have put smileys ;-) You know that's it's not my
style to rock the boat, so SIOCSIWAP won't go away anytime soon.
	And actually, I would be more likely to remove RTS/CTS and
Frag first ;-)

> > 	We need to be pragmatic. Very few people need to set a fixed
> > BSSID. I would even venture to say that in the case of most people
> > setting a fixed BSSID, it's an error and they should not do it (it
> > kills roaming, which is a desirable feature). I've yet to find a card
> > which scanning is broken to the point that you need to fudge the
> > BSSID.
> 
> Maybe very few _people_ use it directly, but please keep in mind that
> programs like wpa_supplicant may control roaming and do it by using this
> SIOCSIWAP.

	Yep, fully agree. And in the part of the e-mail you left out,
I described this kind of need and a solution for those specific apps
(catching SIOCSIWAP iwevents).
	Actually, I'm surprised that those apps don't make more use of
the SIOCS* events. They are a good way to monitor the user and other
apps doing change to the wireless config, and could be used to adapt
to that.

> In addition, being able to limit AP selection to one specific
> BSSID can be quite useful for number of uses.

	As I said, I've found very few cases where the end-user need
to play with those.

> > 	There are some drivers that don't support SIOCSIWAP (set), and
> > it's usually not a problem, users are not complaining about it. That's
> > why I claim we could drop the (set) support. Of course, we can't do it
> > because one PhD student at Berkeley need the feature ;-)
> 
> There's more than one PhD student needing this and I would be very much
> against removing it.

	Well, so make it one PhD student and one Linux driver hacker ;-)

> Jouni Malinen

	Have fun...

	Jean


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-21 20:30       ` Dan Williams
  2006-09-21 20:39         ` mabbas
@ 2006-09-22  8:32         ` Johannes Berg
  2006-09-22 14:05           ` Dan Williams
  1 sibling, 1 reply; 23+ messages in thread
From: Johannes Berg @ 2006-09-22  8:32 UTC (permalink / raw)
  To: Dan Williams; +Cc: mabbas, Jiri Benc, netdev

On Thu, 2006-09-21 at 16:30 -0400, Dan Williams wrote:

> That's kind a hole in the WE API.  In this case, I think, SIOCGIWAP
> should always return the BSSID of the current association, or none if
> there is no association.

I was never sure if it was a hole or just a lack of clearly defined
semantics (duh, I should probably look at the iwconfig code......)

> Doing an iwconfig ap xx:xx:xx:xx:xx:xx should make the driver internally
> locked to that BSSID, such that until you clear that lock, SIOCGIWAP
> should only show either that BSSID or 00:00:00:00:00:00.  SIOCGIWAP
> should not return a valid BSSID when there is no association.
> 
> Hopefully nl80211 can fix this omission in WE.

I think I have addressed this already.

+       /* set access point BSSID for userspace roaming */
+       NL80211_CMD_SET_BSSID,
...
+
+       /* BSSID to associate to, only used when roaming control
+        * is in userspace */
+       NL80211_ATTR_BSSID,
+
...

+       /* get current association information, if not associated then
+        * the BSSID attribute is not present in response */
+       NL80211_CMD_GET_ASSOCIATION,

as well as in the compatibility document:

+SIOCSIWAP
+  -> if bssid is all-ones: set roaming to kernel, reassociate
+  -> if bssid is all-zeroes: set roaming to kernel
+  -> otherwise: set roaming to userspace, set bssid
+
+SIOCGIWAP
+  -> get association parameters and fill return bssid appropriately


I think that should do what you need, no?

johannes

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
  2006-09-22  8:32         ` [PATCH 5/7] d80211: indicate if unassociate/radio off status Johannes Berg
@ 2006-09-22 14:05           ` Dan Williams
  0 siblings, 0 replies; 23+ messages in thread
From: Dan Williams @ 2006-09-22 14:05 UTC (permalink / raw)
  To: Johannes Berg; +Cc: mabbas, Jiri Benc, netdev

On Fri, 2006-09-22 at 10:32 +0200, Johannes Berg wrote:
> On Thu, 2006-09-21 at 16:30 -0400, Dan Williams wrote:
> 
> > That's kind a hole in the WE API.  In this case, I think, SIOCGIWAP
> > should always return the BSSID of the current association, or none if
> > there is no association.
> 
> I was never sure if it was a hole or just a lack of clearly defined
> semantics (duh, I should probably look at the iwconfig code......)
> 
> > Doing an iwconfig ap xx:xx:xx:xx:xx:xx should make the driver internally
> > locked to that BSSID, such that until you clear that lock, SIOCGIWAP
> > should only show either that BSSID or 00:00:00:00:00:00.  SIOCGIWAP
> > should not return a valid BSSID when there is no association.
> > 
> > Hopefully nl80211 can fix this omission in WE.
> 
> I think I have addressed this already.
> 
> +       /* set access point BSSID for userspace roaming */
> +       NL80211_CMD_SET_BSSID,
> ...
> +
> +       /* BSSID to associate to, only used when roaming control
> +        * is in userspace */
> +       NL80211_ATTR_BSSID,
> +
> ...
> 
> +       /* get current association information, if not associated then
> +        * the BSSID attribute is not present in response */
> +       NL80211_CMD_GET_ASSOCIATION,
> 
> as well as in the compatibility document:
> 
> +SIOCSIWAP
> +  -> if bssid is all-ones: set roaming to kernel, reassociate
> +  -> if bssid is all-zeroes: set roaming to kernel
> +  -> otherwise: set roaming to userspace, set bssid
> +
> +SIOCGIWAP
> +  -> get association parameters and fill return bssid appropriately
> 
> 
> I think that should do what you need, no?

Looks like it, yes.  As long as there are separate mechanisms for the
getting/setting a 'locked' BSSID, and a separate attribute for the
currently associated access point (if any).  Which this looks like it
would provide.

Thanks!
Dan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* [d80211 patch 1/1] setting bss freq and phymode using rx_status
  2006-09-22  0:57                 ` Jean Tourrilhes
@ 2006-09-22 22:29                   ` mabbas
  2006-09-25 16:16                     ` Jiri Benc
  0 siblings, 1 reply; 23+ messages in thread
From: mabbas @ 2006-09-22 22:29 UTC (permalink / raw)
  To: netdev; +Cc: Jiri Benc

[-- Attachment #1: Type: text/plain, Size: 155 bytes --]

this patch is a replacement for d80211-iwlist-fix.patch. Now we
set bss's phymode and freq using rx_status. The low level driver need to
set these values.

[-- Attachment #2: d80211-iwlist-fix-freq-mode.patch --]
[-- Type: text/x-patch, Size: 561 bytes --]


Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com>

diff --git a/net/d80211/ieee80211_sta.c b/net/d80211/ieee80211_sta.c
index a933d92..ddbaf14 100644
--- a/net/d80211/ieee80211_sta.c
+++ b/net/d80211/ieee80211_sta.c
@@ -1539,9 +1539,9 @@ #endif
 	}
 
 
-	bss->hw_mode = local->conf.phymode;
+	bss->hw_mode = rx_status->phymode;
 	bss->channel = channel;
-	bss->freq = local->conf.freq;
+	bss->freq = rx_status->freq;
 	if (channel != local->conf.channel &&
 	    (local->conf.phymode == MODE_IEEE80211G ||
 	     local->conf.phymode == MODE_IEEE80211B) &&

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [d80211 patch 1/1] setting bss freq and phymode using rx_status
  2006-09-22 22:29                   ` [d80211 patch 1/1] setting bss freq and phymode using rx_status mabbas
@ 2006-09-25 16:16                     ` Jiri Benc
  2006-09-25 17:15                       ` mabbas
  0 siblings, 1 reply; 23+ messages in thread
From: Jiri Benc @ 2006-09-25 16:16 UTC (permalink / raw)
  To: mabbas; +Cc: netdev

On Fri, 22 Sep 2006 15:29:42 -0700, mabbas wrote:
> -	bss->hw_mode = local->conf.phymode;
> +	bss->hw_mode = rx_status->phymode;
>  	bss->channel = channel;
> -	bss->freq = local->conf.freq;
> +	bss->freq = rx_status->freq;
>  	if (channel != local->conf.channel &&

>  	    (local->conf.phymode == MODE_IEEE80211G ||
>  	     local->conf.phymode == MODE_IEEE80211B) &&

Are you sure you want local->conf.phymode here?

 Jiri

-- 
Jiri Benc
SUSE Labs

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [d80211 patch 1/1] setting bss freq and phymode using rx_status
  2006-09-25 16:16                     ` Jiri Benc
@ 2006-09-25 17:15                       ` mabbas
  2006-09-27 15:34                         ` Jiri Benc
  0 siblings, 1 reply; 23+ messages in thread
From: mabbas @ 2006-09-25 17:15 UTC (permalink / raw)
  To: netdev; +Cc: Jiri Benc

[-- Attachment #1: Type: text/plain, Size: 229 bytes --]

actaully we dont even need local->conf.channel. rx_status->channel holds 
the channel
we physically received the frame on. channel hold the value from ds. if 
they are not equal then
adjust freq. Attached is the modified patch



[-- Attachment #2: d80211-iwlist-fix-freq-mode.patch --]
[-- Type: text/x-patch, Size: 808 bytes --]


Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com>

diff --git a/net/d80211/ieee80211_sta.c b/net/d80211/ieee80211_sta.c
index a933d92..a0746b9 100644
--- a/net/d80211/ieee80211_sta.c
+++ b/net/d80211/ieee80211_sta.c
@@ -1539,12 +1539,12 @@ #endif
 	}
 
 
-	bss->hw_mode = local->conf.phymode;
+	bss->hw_mode = rx_status->phymode;
 	bss->channel = channel;
-	bss->freq = local->conf.freq;
-	if (channel != local->conf.channel &&
-	    (local->conf.phymode == MODE_IEEE80211G ||
-	     local->conf.phymode == MODE_IEEE80211B) &&
+	bss->freq = rx_status->freq;
+	if (channel != rx_status->channel &&
+	    (bss->hw_mode == MODE_IEEE80211G ||
+	     bss->hw_mode == MODE_IEEE80211B) &&
 	    channel >= 1 && channel <= 14) {
 		static const int freq_list[] = {
 			2412, 2417, 2422, 2427, 2432, 2437, 2442,

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [d80211 patch 1/1] setting bss freq and phymode using rx_status
  2006-09-25 17:15                       ` mabbas
@ 2006-09-27 15:34                         ` Jiri Benc
  0 siblings, 0 replies; 23+ messages in thread
From: Jiri Benc @ 2006-09-27 15:34 UTC (permalink / raw)
  To: mabbas; +Cc: netdev

On Mon, 25 Sep 2006 10:15:28 -0700, mabbas wrote:
> actaully we dont even need local->conf.channel. rx_status->channel holds 
> the channel
> we physically received the frame on. channel hold the value from ds. if 
> they are not equal then
> adjust freq. Attached is the modified patch

Applied to my tree. Thanks for the patch!

 Jiri

-- 
Jiri Benc
SUSE Labs

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2006-09-27 15:34 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-28 20:49 [PATCH 5/7] d80211: indicate if unassociate/radio off status mabbas
2006-08-28 21:17 ` Michael Wu
2006-08-29 17:55   ` Jouni Malinen
2006-08-29 22:28     ` Mohamed Abbas
2006-08-29 22:50       ` Michael Wu
2006-08-29 23:01         ` Michael Wu
2006-08-30 13:41           ` Dan Williams
2006-08-30 17:22             ` Michael Wu
2006-09-21 17:01 ` Jiri Benc
2006-09-21 19:03   ` Dan Williams
2006-09-21 19:47     ` mabbas
2006-09-21 20:30       ` Dan Williams
2006-09-21 20:39         ` mabbas
2006-09-21 22:38           ` Jiri Benc
2006-09-21 22:55             ` Jean Tourrilhes
2006-09-22  0:42               ` Jouni Malinen
2006-09-22  0:57                 ` Jean Tourrilhes
2006-09-22 22:29                   ` [d80211 patch 1/1] setting bss freq and phymode using rx_status mabbas
2006-09-25 16:16                     ` Jiri Benc
2006-09-25 17:15                       ` mabbas
2006-09-27 15:34                         ` Jiri Benc
2006-09-22  8:32         ` [PATCH 5/7] d80211: indicate if unassociate/radio off status Johannes Berg
2006-09-22 14:05           ` Dan Williams

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).