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