Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA

2018-09-20 Thread Dan Carpenter
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



Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA

2018-09-20 Thread Simon Wunderlich
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  507if (sdata->wdev.cac_started)
> ad9617f2 Simon Wunderlich  2018-09-18 @508return -EBUSY;
> ^
> ad9617f2 Simon Wunderlich  2018-09-18  509
> ad9617f2 Simon Wunderlich  2018-09-18  510if (sdata->vif.csa_active)
> ad9617f2 Simon Wunderlich  2018-09-18  511return -EBUSY;
> ^^
> 164eb02d Simon Wunderlich  2013-02-08  512
> 2eb278e0 Johannes Berg 2012-06-05  513if
> (!list_empty(>roc_list)) 133d40f9 Stanislaw Gruszka 2012-03-28  514 
>   return false;
> 133d40f9 Stanislaw Gruszka 2012-03-28  515
> 133d40f9 Stanislaw Gruszka 2012-03-28  516if (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  520return true;
> 133d40f9 Stanislaw Gruszka 2012-03-28  521  }
> 133d40f9 Stanislaw Gruszka 2012-03-28  522
> 
> ---
> 0-DAY kernel test infrastructureOpen Source Technology
> Center https://lists.01.org/pipermail/kbuild-all   Intel
> Corporation



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


Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA

2018-09-20 Thread Simon Wunderlich
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=800=true_id=41106ee4d951847389e55571a5e5e8aa_occur=1_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=905462%20D02%20UNII%20DFS%20Compliance%20Procedures%20New%20Rules
%20v02_number=27155
[3] https://www.etsi.org/deliver/etsi_en/301800_301899/301893/02.01.01_60/
en_301893v020101p.pdf
> 
> johannes



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


Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA

2018-09-20 Thread Johannes Berg
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


Re: [PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA

2018-09-20 Thread Dan Carpenter
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(>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 infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


[PATCH] mac80211: allow scans on radar channels, unless there is CAC or CSA

2018-09-18 Thread Simon Wunderlich
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 
Cc: Eliad Peller 
Signed-off-by: Simon Wunderlich 
---
 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(>roc_list))
return false;
@@ -550,7 +553,7 @@ static int __ieee80211_start_scan(struct 
ieee80211_sub_if_data *sdata,
 
lockdep_assert_held(>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