Merge "cfg80211: Advertise maximum associated STAs in AP mode"

This commit is contained in:
Linux Build Service Account 2014-03-15 10:08:26 -07:00 committed by Gerrit - the friendly Code Review server
commit 3a0c7da67b
3 changed files with 21 additions and 0 deletions

View File

@ -2682,6 +2682,11 @@ struct wiphy_vendor_command {
* @n_vendor_commands: number of vendor commands
* @vendor_events: array of vendor events supported by the hardware
* @n_vendor_events: number of vendor events
*
* @max_ap_assoc_sta: maximum number of associated stations supported in AP mode
* (including P2P GO) or 0 to indicate no such limit is advertised. The
* driver is allowed to advertise a theoretical limit that it can reach in
* some cases, but may not always reach.
*/
struct wiphy {
/* assign these fields before you register the wiphy */
@ -2796,6 +2801,8 @@ struct wiphy {
const struct nl80211_vendor_cmd_info *vendor_events;
int n_vendor_commands, n_vendor_events;
u16 max_ap_assoc_sta;
char priv[0] __aligned(NETDEV_ALIGN);
};

View File

@ -1525,6 +1525,13 @@ enum nl80211_commands {
* @NL80211_ATTR_MAC_HINT: MAC address recommendation as initial BSS
* @NL80211_ATTR_WIPHY_FREQ_HINT: frequency of the recommended initial BSS
*
* @NL80211_ATTR_MAX_AP_ASSOC_STA: Device attribute that indicates how many
* associated stations are supported in AP mode (including P2P GO); u32.
* Since drivers may not have a fixed limit on the maximum number (e.g.,
* other concurrent operations may affect this), drivers are allowed to
* advertise values that cannot always be met. In such cases, an attempt
* to add a new station entry with @NL80211_CMD_NEW_STATION may fail.
*
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
*/
@ -1857,6 +1864,8 @@ enum nl80211_attrs {
NL80211_ATTR_MAC_HINT,
NL80211_ATTR_WIPHY_FREQ_HINT,
NL80211_ATTR_MAX_AP_ASSOC_STA,
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,

View File

@ -1529,6 +1529,11 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *dev,
dev->wiphy.max_acl_mac_addrs))
goto nla_put_failure;
if (dev->wiphy.max_ap_assoc_sta &&
nla_put_u32(msg, NL80211_ATTR_MAX_AP_ASSOC_STA,
dev->wiphy.max_ap_assoc_sta))
goto nla_put_failure;
if (dev->wiphy.n_vendor_commands) {
const struct nl80211_vendor_cmd_info *info;
struct nlattr *nested;