diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-04-18 15:49:00 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-04-22 15:48:00 +0200 |
commit | 5de17984898c5758fc6ebe08eccea9f4b6548914 (patch) | |
tree | 17aab780c025cfac0bd5a8b010b8ea9c138ff780 /net/wireless/core.h | |
parent | a36473621c871df14bbf2106ab0721b475aac8e0 (diff) | |
download | op-kernel-dev-5de17984898c5758fc6ebe08eccea9f4b6548914.zip op-kernel-dev-5de17984898c5758fc6ebe08eccea9f4b6548914.tar.gz |
cfg80211: introduce critical protocol indication from user-space
Some protocols need a more reliable connection to complete
successful in reasonable time. This patch adds a user-space
API to indicate the wireless driver that a critical protocol
is about to commence and when it is done, using nl80211 primitives
NL80211_CMD_CRIT_PROTOCOL_START and NL80211_CRIT_PROTOCOL_STOP.
There can be only on critical protocol session started per
registered cfg80211 device.
The driver can support this by implementing the cfg80211 callbacks
.crit_proto_start() and .crit_proto_stop(). Examples of protocols
that can benefit from this are DHCP, EAPOL, APIPA. Exactly how the
link can/should be made more reliable is up to the driver. Things
to consider are avoid scanning, no multi-channel operations, and
alter coexistence schemes.
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/core.h')
-rw-r--r-- | net/wireless/core.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/wireless/core.h b/net/wireless/core.h index 124e5e7..fd35dae 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h @@ -88,6 +88,9 @@ struct cfg80211_registered_device { struct delayed_work dfs_update_channels_wk; + /* netlink port which started critical protocol (0 means not started) */ + u32 crit_proto_nlportid; + /* must be last because of the way we do wiphy_priv(), * and it should at least be aligned to NETDEV_ALIGN */ struct wiphy wiphy __aligned(NETDEV_ALIGN); |