diff options
author | Ilan Peer <ilan.peer@intel.com> | 2020-01-31 13:45:29 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2020-02-07 12:54:09 +0100 |
commit | ff74c51e8f4c543ed2bd3bf1c2f3287b098660df (patch) | |
tree | 7387c345827a1ef86cc2b2ca3aabd326834dec86 /net/wireless/nl80211.c | |
parent | f93d6b21a93ceb02140eafd84e4fd77f5d00180a (diff) | |
download | lwn-ff74c51e8f4c543ed2bd3bf1c2f3287b098660df.tar.gz lwn-ff74c51e8f4c543ed2bd3bf1c2f3287b098660df.zip |
cfg80211/mac80211: Allow user space to register for station Rx authentication
To support Pre Association Security Negotiation (PASN) while already
associated to one AP, allow user space to register to Rx
authentication frames, so that the user space logic would be able to
receive/handle authentication frames from a different AP as part of
PASN.
Note that it is expected that user space would intelligently register
for Rx authentication frames, i.e., only when PASN is used and
configure a match filter only for PASN authentication algorithm, as
otherwise the MLME functionality of mac80211 would be broken.
Additionally, since some versions of the user space daemons wrongly
register to all types of authentication frames (which might result in
unexpected behavior) allow such registration if the request is for a
specific authentication algorithm number.
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/20200131114529.894206-1-luca@coelho.fi
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/nl80211.c')
-rw-r--r-- | net/wireless/nl80211.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 3ad937d0a256..4c0ea54e0f59 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -10624,8 +10624,9 @@ static int nl80211_register_mgmt(struct sk_buff *skb, struct genl_info *info) return -EOPNOTSUPP; return cfg80211_mlme_register_mgmt(wdev, info->snd_portid, frame_type, - nla_data(info->attrs[NL80211_ATTR_FRAME_MATCH]), - nla_len(info->attrs[NL80211_ATTR_FRAME_MATCH])); + nla_data(info->attrs[NL80211_ATTR_FRAME_MATCH]), + nla_len(info->attrs[NL80211_ATTR_FRAME_MATCH]), + info->extack); } static int nl80211_tx_mgmt(struct sk_buff *skb, struct genl_info *info) |