linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
@ 2018-09-18 14:16 Simon Wunderlich
  2018-09-20  9:20 ` Dan Carpenter
  2018-09-20  9:21 ` Johannes Berg
  0 siblings, 2 replies; 7+ messages in thread
From: Simon Wunderlich @ 2018-09-18 14:16 UTC (permalink / raw)
  To: linux-wireless; +Cc: johannes, Simon Wunderlich, Eliad Peller

Operating on a DFS channel doesn't mean we can't leave it for a short
time - actually, some features like off-channel CAC work by leaving the
operation channel to check other channels for availability (although
off-channel CAC isn't implemented in mac80211). In our case, we want to
use mesh while doing background surveys on other channels from time to
time.

Therefore, we can enable scans while on DFS channels, unless there is
CAC going on (must be continuous) or a CSA is happening.

Reported-by: Mathias Kretschmer <mathias.kretschmer@fit.fraunhofer.de>
Cc: Eliad Peller <eliad@wizery.com>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
 net/mac80211/scan.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 47d2ed570470..58a454515a5a 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -477,8 +477,11 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local,
 static bool ieee80211_can_scan(struct ieee80211_local *local,
 			       struct ieee80211_sub_if_data *sdata)
 {
-	if (ieee80211_is_radar_required(local))
-		return false;
+	if (sdata->wdev.cac_started)
+		return -EBUSY;
+
+	if (sdata->vif.csa_active)
+		return -EBUSY;
 
 	if (!list_empty(&local->roc_list))
 		return false;
@@ -550,7 +553,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
 
 	lockdep_assert_held(&local->mtx);
 
-	if (local->scan_req || ieee80211_is_radar_required(local))
+	if (local->scan_req)
 		return -EBUSY;
 
 	if (!ieee80211_can_scan(local, sdata)) {
-- 
2.11.0

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

* Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
  2018-09-18 14:16 [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA Simon Wunderlich
@ 2018-09-20  9:20 ` Dan Carpenter
  2018-09-20 13:30   ` Simon Wunderlich
  2018-09-20  9:21 ` Johannes Berg
  1 sibling, 1 reply; 7+ messages in thread
From: Dan Carpenter @ 2018-09-20  9:20 UTC (permalink / raw)
  To: kbuild, Simon Wunderlich
  Cc: kbuild-all, linux-wireless, johannes, Simon Wunderlich,
	Eliad Peller

Hi Simon,

I love your patch! Perhaps something to improve:

url:    https://github.com/0day-ci/linux/commits/Simon-Wunderlich/mac80211-allow-scans-on-radar-channels-unless-there-is-CAC-or-CSA/20180919-071924
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git master

New smatch warnings:
net/mac80211/scan.c:508 ieee80211_can_scan() warn: signedness bug returning '(-16)'

Old smatch warnings:
net/mac80211/scan.c:511 ieee80211_can_scan() warn: signedness bug returning '(-16)'

# https://github.com/0day-ci/linux/commit/ad9617f275c425ddf25eb83678062ab87d4c0870
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout ad9617f275c425ddf25eb83678062ab87d4c0870
vim +508 net/mac80211/scan.c

f3b85252 Johannes Berg     2009-04-23  503  
133d40f9 Stanislaw Gruszka 2012-03-28  504  static bool ieee80211_can_scan(struct ieee80211_local *local,
                                                   ^^^^
133d40f9 Stanislaw Gruszka 2012-03-28  505  			       struct ieee80211_sub_if_data *sdata)
133d40f9 Stanislaw Gruszka 2012-03-28  506  {
ad9617f2 Simon Wunderlich  2018-09-18  507  	if (sdata->wdev.cac_started)
ad9617f2 Simon Wunderlich  2018-09-18 @508  		return -EBUSY;
                                                        ^^^^^^^^^^^^^
ad9617f2 Simon Wunderlich  2018-09-18  509  
ad9617f2 Simon Wunderlich  2018-09-18  510  	if (sdata->vif.csa_active)
ad9617f2 Simon Wunderlich  2018-09-18  511  		return -EBUSY;
                                                        ^^^^^^^^^^^^^^
164eb02d Simon Wunderlich  2013-02-08  512  
2eb278e0 Johannes Berg     2012-06-05  513  	if (!list_empty(&local->roc_list))
133d40f9 Stanislaw Gruszka 2012-03-28  514  		return false;
133d40f9 Stanislaw Gruszka 2012-03-28  515  
133d40f9 Stanislaw Gruszka 2012-03-28  516  	if (sdata->vif.type == NL80211_IFTYPE_STATION &&
392b9ffb Stanislaw Gruszka 2013-08-27  517  	    sdata->u.mgd.flags & IEEE80211_STA_CONNECTION_POLL)
133d40f9 Stanislaw Gruszka 2012-03-28  518  		return false;
133d40f9 Stanislaw Gruszka 2012-03-28  519  
133d40f9 Stanislaw Gruszka 2012-03-28  520  	return true;
133d40f9 Stanislaw Gruszka 2012-03-28  521  }
133d40f9 Stanislaw Gruszka 2012-03-28  522  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

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

* Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
  2018-09-18 14:16 [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA Simon Wunderlich
  2018-09-20  9:20 ` Dan Carpenter
@ 2018-09-20  9:21 ` Johannes Berg
  2018-09-20 10:27   ` Simon Wunderlich
  1 sibling, 1 reply; 7+ messages in thread
From: Johannes Berg @ 2018-09-20  9:21 UTC (permalink / raw)
  To: Simon Wunderlich, linux-wireless; +Cc: Eliad Peller

On Tue, 2018-09-18 at 16:16 +0200, Simon Wunderlich wrote:
> Operating on a DFS channel doesn't mean we can't leave it for a short
> time - actually, some features like off-channel CAC work by leaving the
> operation channel to check other channels for availability (although
> off-channel CAC isn't implemented in mac80211). In our case, we want to
> use mesh while doing background surveys on other channels from time to
> time.

Actually ... as far as I can tell it *does* mean that, at least
currently for FCC.

johannes

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

* Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
  2018-09-20  9:21 ` Johannes Berg
@ 2018-09-20 10:27   ` Simon Wunderlich
  2019-03-29 10:35     ` Johannes Berg
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Wunderlich @ 2018-09-20 10:27 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, Eliad Peller, mathias.kretschmer

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

On Thursday, September 20, 2018 11:21:16 AM CEST Johannes Berg wrote:
> On Tue, 2018-09-18 at 16:16 +0200, Simon Wunderlich wrote:
> > Operating on a DFS channel doesn't mean we can't leave it for a short
> > time - actually, some features like off-channel CAC work by leaving the
> > operation channel to check other channels for availability (although
> > off-channel CAC isn't implemented in mac80211). In our case, we want to
> > use mesh while doing background surveys on other channels from time to
> > time.
> 
> Actually ... as far as I can tell it *does* mean that, at least
> currently for FCC.


Mhm. I remember you said that before. But I can't find references for it. I 
checked the FCC 15.407 document [1] but couldn't find anything in favor or 
against that. Same for the measurement procedures [2]. I also couldn't find 
off-channel CAC in FCC, which I used for my argument in ETSI:

In ETSI 301 893 [3] they talk about non-continuous checks for off-channel CAC 
(in 4.2.6.2.3, second paragraph) and continuous period for CAC (4.2.6.2.2.2, 
first paragraph). Continuity is not mentioned for in-service monitoring 
(4.2.6.2.4), but off-channel CAC could only work when continuity is not 
required.

I'd appreciate if you (or someone else) can point me to where it's stated that 
we can't leave the channel for the a short time. I'm assuming that we are back 
fast enough to ensure the required detection probability.

Cheers,
     Simon

[1] https://www.law.cornell.edu/definitions/index.php?
width=840&height=800&iframe=true&def_id=41106ee4d951847389e55571a5e5e8aa&term_occur=1&term_src=Title:
47:Chapter:I:Subchapter:A:Part:15:Subpart:E:15.407
[2] https://apps.fcc.gov/kdb/GetAttachment.html?id=V2DzGgztnfxjTcht59nQ7Q%3D
%3D&desc=905462%20D02%20UNII%20DFS%20Compliance%20Procedures%20New%20Rules
%20v02&tracking_number=27155
[3] https://www.etsi.org/deliver/etsi_en/301800_301899/301893/02.01.01_60/
en_301893v020101p.pdf
> 
> johannes


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
  2018-09-20  9:20 ` Dan Carpenter
@ 2018-09-20 13:30   ` Simon Wunderlich
  2018-09-20 13:40     ` Dan Carpenter
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Wunderlich @ 2018-09-20 13:30 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: kbuild, kbuild-all, linux-wireless, johannes, Eliad Peller,
	mathias.kretschmer

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

Hi Dan,

whoops, right ... thank you!

Will do in a v2, at least if this patch is wanted. :)

Thank you!
     Simon

On Thursday, September 20, 2018 12:20:14 PM CEST Dan Carpenter wrote:
> Hi Simon,
> 
> I love your patch! Perhaps something to improve:
> 
> url:   
> https://github.com/0day-ci/linux/commits/Simon-Wunderlich/mac80211-allow-sc
> ans-on-radar-channels-unless-there-is-CAC-or-CSA/20180919-071924 base:  
> https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git master
> 
> New smatch warnings:
> net/mac80211/scan.c:508 ieee80211_can_scan() warn: signedness bug returning
> '(-16)'
> 
> Old smatch warnings:
> net/mac80211/scan.c:511 ieee80211_can_scan() warn: signedness bug returning
> '(-16)'
> 
> #
> https://github.com/0day-ci/linux/commit/ad9617f275c425ddf25eb83678062ab87d4
> c0870 git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout ad9617f275c425ddf25eb83678062ab87d4c0870
> vim +508 net/mac80211/scan.c
> 
> f3b85252 Johannes Berg     2009-04-23  503
> 133d40f9 Stanislaw Gruszka 2012-03-28  504  static bool
> ieee80211_can_scan(struct ieee80211_local *local, ^^^^
> 133d40f9 Stanislaw Gruszka 2012-03-28  505  			       struct
> ieee80211_sub_if_data *sdata) 133d40f9 Stanislaw Gruszka 2012-03-28  506  {
> ad9617f2 Simon Wunderlich  2018-09-18  507  	if (sdata->wdev.cac_started)
> ad9617f2 Simon Wunderlich  2018-09-18 @508  		return -EBUSY;
>                                                         ^^^^^^^^^^^^^
> ad9617f2 Simon Wunderlich  2018-09-18  509
> ad9617f2 Simon Wunderlich  2018-09-18  510  	if (sdata->vif.csa_active)
> ad9617f2 Simon Wunderlich  2018-09-18  511  		return -EBUSY;
>                                                         ^^^^^^^^^^^^^^
> 164eb02d Simon Wunderlich  2013-02-08  512
> 2eb278e0 Johannes Berg     2012-06-05  513  	if
> (!list_empty(&local->roc_list)) 133d40f9 Stanislaw Gruszka 2012-03-28  514 
> 		return false;
> 133d40f9 Stanislaw Gruszka 2012-03-28  515
> 133d40f9 Stanislaw Gruszka 2012-03-28  516  	if (sdata->vif.type ==
> NL80211_IFTYPE_STATION && 392b9ffb Stanislaw Gruszka 2013-08-27  517  	   
> sdata->u.mgd.flags & IEEE80211_STA_CONNECTION_POLL) 133d40f9 Stanislaw
> Gruszka 2012-03-28  518  		return false;
> 133d40f9 Stanislaw Gruszka 2012-03-28  519
> 133d40f9 Stanislaw Gruszka 2012-03-28  520  	return true;
> 133d40f9 Stanislaw Gruszka 2012-03-28  521  }
> 133d40f9 Stanislaw Gruszka 2012-03-28  522
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology
> Center https://lists.01.org/pipermail/kbuild-all                   Intel
> Corporation


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
  2018-09-20 13:30   ` Simon Wunderlich
@ 2018-09-20 13:40     ` Dan Carpenter
  0 siblings, 0 replies; 7+ messages in thread
From: Dan Carpenter @ 2018-09-20 13:40 UTC (permalink / raw)
  To: Simon Wunderlich
  Cc: kbuild, kbuild-all, linux-wireless, johannes, Eliad Peller,
	mathias.kretschmer

On Thu, Sep 20, 2018 at 03:30:05PM +0200, Simon Wunderlich wrote:
> Hi Dan,
> 
> whoops, right ... thank you!
> 
> Will do in a v2, at least if this patch is wanted. :)
> 

These are automated emails, I just look at them and forward them.  I
don't actually "love your patch" because I haven't even looked at it.
The bot adds that text to sound more friendly...

Presumably the patch is wanted, but I don't know.  Anyway, yes, please
do send a v2.

regards,
dan carpenter

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

* Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA
  2018-09-20 10:27   ` Simon Wunderlich
@ 2019-03-29 10:35     ` Johannes Berg
  0 siblings, 0 replies; 7+ messages in thread
From: Johannes Berg @ 2019-03-29 10:35 UTC (permalink / raw)
  To: Simon Wunderlich; +Cc: linux-wireless, Eliad Peller, mathias.kretschmer

On Thu, 2018-09-20 at 12:27 +0200, Simon Wunderlich wrote:
> On Thursday, September 20, 2018 11:21:16 AM CEST Johannes Berg wrote:
> > On Tue, 2018-09-18 at 16:16 +0200, Simon Wunderlich wrote:
> > > Operating on a DFS channel doesn't mean we can't leave it for a short
> > > time - actually, some features like off-channel CAC work by leaving the
> > > operation channel to check other channels for availability (although
> > > off-channel CAC isn't implemented in mac80211). In our case, we want to
> > > use mesh while doing background surveys on other channels from time to
> > > time.
> > 
> > Actually ... as far as I can tell it *does* mean that, at least
> > currently for FCC.
> 
> 
> Mhm. I remember you said that before. But I can't find references for it. I 
> checked the FCC 15.407 document [1] but couldn't find anything in favor or 
> against that. Same for the measurement procedures [2]. I also couldn't find 
> off-channel CAC in FCC, which I used for my argument in ETSI:
> 
> In ETSI 301 893 [3] they talk about non-continuous checks for off-channel CAC 
> (in 4.2.6.2.3, second paragraph) and continuous period for CAC (4.2.6.2.2.2, 
> first paragraph). Continuity is not mentioned for in-service monitoring 
> (4.2.6.2.4), but off-channel CAC could only work when continuity is not 
> required.
> 
> I'd appreciate if you (or someone else) can point me to where it's stated that 
> we can't leave the channel for the a short time. I'm assuming that we are back 
> fast enough to ensure the required detection probability.

I still don't have a document, but we spoke about it at the wireless
workshop and Jouni agrees that this is an absolute no-go for FCC, while
allowed for ETSI.

I guess you can make it depend on the radar domain information.

johannes


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

end of thread, other threads:[~2019-03-29 10:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-18 14:16 [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA Simon Wunderlich
2018-09-20  9:20 ` Dan Carpenter
2018-09-20 13:30   ` Simon Wunderlich
2018-09-20 13:40     ` Dan Carpenter
2018-09-20  9:21 ` Johannes Berg
2018-09-20 10:27   ` Simon Wunderlich
2019-03-29 10:35     ` Johannes Berg

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