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
261261 * the regulatory core to help with compliance. A dump version of this API
262262 * is now available which will returns the global regdomain as well as
263263 * 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.
264267 * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command
265268 * after being queried by the kernel. CRDA replies by sending a regulatory
266269 * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
@@ -1702,6 +1705,11 @@ enum nl80211_commands { · 1435 unmodified lines
17021705 *
17031706 * @NL80211_ATTR_MAC_MASK: MAC address mask
17041707 *
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+ *
17051713 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
17061714 * @NL80211_ATTR_MAX: highest attribute number currently defined
17071715 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2059,6 +2067,8 @@ enum nl80211_attrs { · 351 unmodified lines
20592067
20602068 NL80211_ATTR_MAC_MASK,
20612069
2070+ NL80211_ATTR_WIPHY_SELF_MANAGED_REG,
2071+
20622072 /* add attributes here, update the policy in nl80211.c */
20632073
20642074 __NL80211_ATTR_AFTER_LAST,