linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Zefir Kurtisi <zefir.kurtisi@neratec.com>
To: Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	linux-wireless@vger.kernel.org, victorg@ti.com,
	linville@tuxdriver.com, kgiori@qca.qualcomm.com,
	adrian@freebsd.org, j@w1.fi, coelho@ti.com, igalc@ti.com,
	nbd@nbd.name, mathias.kretschmer@fokus.fraunhofer.de,
	Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Subject: Re: [PATCHv6 3/6] nl80211/cfg80211: add radar detection command/event
Date: Thu, 24 Jan 2013 13:56:31 +0100	[thread overview]
Message-ID: <51012F7F.1050007@neratec.com> (raw)
In-Reply-To: <20130123124942.GB23989@pandem0nium>

On 01/23/2013 01:49 PM, Simon Wunderlich wrote:
> Hey Zefir,
> 
> On Mon, Jan 21, 2013 at 11:44:22AM +0100, Zefir Kurtisi wrote:
>> On 01/18/2013 10:54 PM, Johannes Berg wrote:
>>> On Thu, 2013-01-17 at 14:40 +0100, Simon Wunderlich wrote:
>>>
>>>> Actually there is no limit how long a channel is considered "available", at
>>>> least in ETSI. ETSI EN 301-893 v1.4.1 had a limit of 24 hours for that,
>>>> but that was removed in v1.5.1 and didn't re-appear since then (current is
>>>> v1.7.1).
>>>
>>> Huh indeed, I would have expected that to be there. It does have a
>>> non-occupancy time though (30 minutes), maybe we should implement that?
>>>
>> No, why be more restrictive than regulatory demands?
>>
>> With the recent incremental updates, a general note: Victor's initial approach was
>> to keep all logic in hostapd and minimize the modifications in mac by only
>> ensuring CAC times there. If NOP handling is also added to mac, we'd have
>> everything needed to handle DFS channel states available. With hostapd only left
>> to do the selection of the channel to switch to after a radar detection, it might
>> make sense to move everything down to mac. I understand that questioning the
>> design that late is not helpful, at the same time and since the initial path was
>> left, it might be worth considering.
> 
> Actually questioning the design NOW is a good idea, we are already questioning it
> through the last patches and better bring up the issues now than later. We have started from the
> simple hostap-handles-everything approach and have seen some points are missing when
> we think about multi interfaces etc for the future (and implementation issues of course).
> 
> If we move channel states (available/unavailable) already into the kernel space, we might
> as well check for other states (already doing CAC, not valid until). Maybe it's better like
> this than splitting the management over hostapd and cfg/mac80211?
> 
As written in my other post today, managed master mode can't be supported (as long
as we can't override channel states), so for our needs we need a different approach.

Remarkably, the proof-of-concept I proposed as 'poor-man's solution' in Vancouver
two years ago turned out to be quite well usable. It goes like this:
*) hostapd: patched to allow DFS channels
*) ath9k: patched to enable radar detection on DFS-channels
*) channel states handled by a daemon in user space

Switching to AVAILABLE channel:
*) set up master immediately

Switching to non AVAILABLE channel:
*) set up monitor
*) wait CAC
*) set up master if no radar
*) else select different channel


Since I need to patch / bypass the master functionality to enable managed DFS
mode, I am naturally biased. Nevertheless, ideally everything should be in
cfg/mac, as long as there is no compelling reason to split it with hostapd.

>>> I'm also thinking with the next regdb format update we should allow
>>> specifying these timeouts etc. there.
>>>
>>> Does anyone have the relevant FCC rules? I can't find anything with
>>> google ...
>>>
>> The FCC 06-96 document (freely available, e.g.
>> http://hraunfoss.fcc.gov/edocs_public/attachmatch/FCC-06-96A1.pdf) seems to be the
>> most recent one. Skimming over I did not find a requirement for the validity
>> period after CAC.
>>
> 
> Thanks for pointing us to that doc. Couldn't find anything either, so I'd just
> skip any "validity" for now.
> 
>>>> But we can move the CAC/timeout in the wdev and have keep a flag field in
>>>> the channel struct instead, marking the channel as available, unavailable, etc.
>>>>
>>>> What do you think?
>>>
>>> I think that would make sense. Probably available/unavailable and
>>> "non-occupancy until"?
>>>
>> At that stage, we would have half of all potential states (UNKNOWN, AVAILABLE,
>> OPERATING, UNAVAILABLE, USABLE, SCANNING) covered, so a current state per channel
>> and the time it was entered would give everything required for the complete state
>> machine in mac.
> 
> Sounds good! Will look into this ...
> 
State machine is trivial. If you need a reference implementation and are not
scared of C++ code, I can provide you mine.
> Thanks,
> 	Simon
> 
Thanks for handling this,
Zefir


  reply	other threads:[~2013-01-24 12:56 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-08 13:04 [PATCHv6 0/6] Add DFS master ability Simon Wunderlich
2013-01-08 13:04 ` [PATCHv6 1/6] nl80211: check if channel can be used in join_ibss Simon Wunderlich
2013-01-16 22:35   ` Johannes Berg
2013-01-17 13:27     ` Simon Wunderlich
2013-01-08 13:04 ` [PATCHv6 2/6] cfg80211: check radar interface combinations Simon Wunderlich
2013-01-16 22:42   ` Johannes Berg
2013-01-16 22:44     ` Johannes Berg
2013-01-17 13:28       ` Simon Wunderlich
2013-01-30 16:34   ` Luciano Coelho
2013-01-30 16:56     ` Simon Wunderlich
2013-01-30 17:20       ` Luciano Coelho
2013-01-08 13:04 ` [PATCHv6 3/6] nl80211/cfg80211: add radar detection command/event Simon Wunderlich
2013-01-16 22:51   ` Johannes Berg
2013-01-17 13:40     ` Simon Wunderlich
2013-01-18 21:54       ` Johannes Berg
2013-01-21 10:44         ` Zefir Kurtisi
2013-01-23 12:49           ` Simon Wunderlich
2013-01-24 12:56             ` Zefir Kurtisi [this message]
2013-01-08 13:04 ` [PATCHv6 4/6] mac80211: " Simon Wunderlich
2013-01-16 22:59   ` Johannes Berg
2013-01-17 13:52     ` Simon Wunderlich
2013-01-18 22:00       ` Johannes Berg
2013-01-23 12:42         ` Simon Wunderlich
2013-01-08 13:04 ` [PATCHv6 5/6] mac80211: check radar interaction with scan and roc Simon Wunderlich
2013-01-16 23:00   ` Johannes Berg
2013-01-17 13:53     ` Simon Wunderlich
2013-01-08 13:04 ` [PATCHv6 6/6] nl80211: allow DFS in start_ap Simon Wunderlich
2013-01-16 23:22 ` [PATCHv6 0/6] Add DFS master ability Johannes Berg
2013-01-17 14:21   ` Simon Wunderlich
2013-01-18 22:08     ` Johannes Berg
2013-01-21 10:46       ` Zefir Kurtisi
2013-01-23 12:52         ` Simon Wunderlich
2013-01-24 12:19           ` Zefir Kurtisi
2013-01-23 12:57       ` Simon Wunderlich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51012F7F.1050007@neratec.com \
    --to=zefir.kurtisi@neratec.com \
    --cc=adrian@freebsd.org \
    --cc=coelho@ti.com \
    --cc=igalc@ti.com \
    --cc=j@w1.fi \
    --cc=johannes@sipsolutions.net \
    --cc=kgiori@qca.qualcomm.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=mathias.kretschmer@fokus.fraunhofer.de \
    --cc=nbd@nbd.name \
    --cc=simon.wunderlich@s2003.tu-chemnitz.de \
    --cc=siwu@hrz.tu-chemnitz.de \
    --cc=victorg@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).