History

cfg80211: return private regdom for self-managed devices

If a device has self-managed regulatory, insist on returning the wiphy specific regdomain if a wiphy-idx is specified. The global regdomain is meaningless for such devices. Also add an attribute for self-managed devices, so usermode can distinguish them as such.

Arik Nemtsov committed 11 years ago

Commit 1bdd7161 parent b0d7aa52 files · +34 −0Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+10−0
@@ -261,6 +261,9 @@ · 260 unmodified lines
261 * the regulatory core to help with compliance. A dump version of this API261 * the regulatory core to help with compliance. A dump version of this API
262 * is now available which will returns the global regdomain as well as262 * is now available which will returns the global regdomain as well as
263 * all private regdomains of present wiphys (for those that have it).263 * all private regdomains of present wiphys (for those that have it).
264 * If a wiphy is self-managed (%NL80211_ATTR_WIPHY_SELF_MANAGED_REG), then
265 * its private regdomain is the only valid one for it. The regulatory
266 * core is not used to help with compliance in this case.
264 * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command267 * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command
265 * after being queried by the kernel. CRDA replies by sending a regulatory268 * after being queried by the kernel. CRDA replies by sending a regulatory
266 * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our269 * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
@@ -1702,6 +1705,11 @@ enum nl80211_commands { · 1435 unmodified lines
1702 *1705 *
1703 * @NL80211_ATTR_MAC_MASK: MAC address mask1706 * @NL80211_ATTR_MAC_MASK: MAC address mask
1704 *1707 *
1708 * @NL80211_ATTR_WIPHY_SELF_MANAGED_REG: flag attribute indicating this device
1709 * is self-managing its regulatory information and any regulatory domain
1710 * obtained from it is coming from the device's wiphy and not the global
1711 * cfg80211 regdomain.
1712 *
1705 * @NUM_NL80211_ATTR: total number of nl80211_attrs available1713 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
1706 * @NL80211_ATTR_MAX: highest attribute number currently defined1714 * @NL80211_ATTR_MAX: highest attribute number currently defined
1707 * @__NL80211_ATTR_AFTER_LAST: internal use1715 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2059,6 +2067,8 @@ enum nl80211_attrs { · 351 unmodified lines
2059 2067
2060 NL80211_ATTR_MAC_MASK,2068 NL80211_ATTR_MAC_MASK,
2061 2069
2070 NL80211_ATTR_WIPHY_SELF_MANAGED_REG,
2071
2062 /* add attributes here, update the policy in nl80211.c */2072 /* add attributes here, update the policy in nl80211.c */
2063 2073
2064 __NL80211_ATTR_AFTER_LAST,2074 __NL80211_ATTR_AFTER_LAST,