Search Linux Wireless

Re: [PATCH v3 3/3] cfg80211: Allow usermode to query wiphy specific regd info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 26, 2014 at 11:49 AM, Arik Nemtsov <arik@xxxxxxxxxx> wrote:
> On Wed, Nov 26, 2014 at 6:47 PM, Luis R. Rodriguez <mcgrof@xxxxxxxx> wrote:
>> On Wed, Nov 26, 2014 at 11:43 AM, Arik Nemtsov <arik@xxxxxxxxxx> wrote:
>>> On Tue, Nov 25, 2014 at 10:28 PM, Luis R. Rodriguez <mcgrof@xxxxxxxx> wrote:
>>>> On Sun, Nov 23, 2014 at 05:02:21PM +0200, Arik Nemtsov wrote:
>>>>> From: Jonathan Doron <jond@xxxxxxxxxx>
>>>>>
>>>>> Allow usermode to query wiphy-specific regd info, for drivers that use
>>>>> wiphy-specific regulatory management.
>>>>>
>>>>> Use the existing API for sending regdomain info to usermode, but return
>>>>> the wiphy-specific regd in case wiphy index is provided and the driver
>>>>> employs wiphy-specific management. This implies user and kernel-mode
>>>>> support for the feature and is backward compatible.
>>>>>
>>>>> Signed-off-by: Jonathan Doron <jonathanx.doron@xxxxxxxxx>
>>>>> Signed-off-by: Arik Nemtsov <arikx.nemtsov@xxxxxxxxx>
>>>>> ---
>>>>>  include/uapi/linux/nl80211.h | 18 ++++++++++-
>>>>>  net/wireless/nl80211.c       | 71 ++++++++++++++++++++++++++++++++++++--------
>>>>>  net/wireless/reg.c           |  2 +-
>>>>>  net/wireless/reg.h           |  1 +
>>>>>  4 files changed, 78 insertions(+), 14 deletions(-)
>>>>>
>>>>> diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
>>>>> index 3771e7d..b222e5c 100644
>>>>> --- a/include/uapi/linux/nl80211.h
>>>>> +++ b/include/uapi/linux/nl80211.h
>>>>> @@ -252,7 +252,12 @@
>>>>>   *   %NL80211_ATTR_IFINDEX.
>>>>>   *
>>>>>   * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set
>>>>> - *   regulatory domain.
>>>>> + *   regulatory domain. If %NL80211_ATTR_WIPHY is specified and the device
>>>>> + *   self-manages its regulatory settings, its private regulatory domain
>>>>> + *   will be returned.
>>>>> + *   If %NL80211_ATTR_WIPHY_GET_PRIV_REG is specified in addition to
>>>>> + *   %NL80211_ATTR_WIPHY, a device's private regulatory domain will be
>>>>> + *   returned, even if it's regulatory is not self-managed.
>>>>>   * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command
>>>>>   *   after being queried by the kernel. CRDA replies by sending a regulatory
>>>>>   *   domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
>>>>> @@ -1693,6 +1698,14 @@ enum nl80211_commands {
>>>>>   *
>>>>>   * @NL80211_ATTR_MAC_MASK: MAC address mask
>>>>>   *
>>>>> + * @NL80211_ATTR_WIPHY_SELF_MANAGED_REG: flag attribute indicating the
>>>>> + *   regulatory information was obtained from the private regdomain
>>>>> + *   of a device with self-managed regulatory.
>>>>> + * @NL80211_ATTR_WIPHY_GET_PRIV_REG: flag attribute indicating the regulatory
>>>>> + *   information should be obtained from a device's private regdomain,
>>>>> + *   if it exists. This will happen even if the device is not self-managing
>>>>> + *   its regulatory.
>>>>
>>>> As with REGULATORY_WIPHY_SELF_MANAGED we need a flag that cfg80211 sets for
>>>> drivers that use regulatory_hint() API, perhaps REGULATORY_WIPHY_REG_HINT.
>>>> Then this can be used by cfg80211 to send to userspace regdomains for wiphys
>>>> that have used this API. Below you enable userspace to only query for these
>>>> explictly but we want to be able to let userspace get all information, ie
>>>> through 'iw reg get'. This should go in as a separate patch along with
>>>> NL80211_ATTR_WIPHY_GET_PRIV_REG as its use predates
>>>> NL80211_ATTR_WIPHY_SELF_MANAGED_REG, this will also let you stuff in the boiler
>>>> plate code for getting that reg first, getting self managed regd's can then
>>>> go in as a clear secondary evolutionary step.
>>>
>>> Note that we don't really need the new REGULATORY_WIPHY_REG_HINT.. If
>>> a wiphy is not self-managed, we can just put
>>> NL80211_ATTR_WIPHY_PRIV_REG, since it's obvious the regulatory_hint
>>> API was used.
>>
>> What if a driver sets the managed flag and then uses regulatory_hint()
>> ? Either way if this is addressed and we can also infer what type of
>> wiphy->regd it is well that's OK with me, the flag idea was just in
>> case we needed it, so I think you might be right.
>
> A self-managed device can't use regulatory_hint().. This is the
> regular path which also updates the cfg80211 regdomain.
> If a device tries to do that, the new regd from CRDA will never reach
> it. So we're covered here.

OK cool.

 Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux