History

cfg80211: Allow use_mfp to be specified with the connect command

The NL80211_ATTR_USE_MFP attribute was originally added for NL80211_CMD_ASSOCIATE, but it is actually as useful (if not even more useful) with NL80211_CMD_CONNECT, so process that attribute with the connect command, too.

Jouni Malinen committed 13 years ago

Commit cee00a91 parent 1c18f144 files · +16 −4Browse files

Unified · Split

4 files
  1. include/net/cfg80211.h +2 −0
  2. include/uapi/linux/nl80211.h +3 −3
  3. net/wireless/nl80211.c +9 −0
  4. net/wireless/sme.c +2 −1
include/net/cfg80211.h+2−0
@@ -1465,6 +1465,7 @@ struct cfg80211_ibss_params { · 1464 unmodified lines
14651465 * @ie: IEs for association request
14661466 * @ie_len: Length of assoc_ie in octets
14671467 * @privacy: indicates whether privacy-enabled APs should be used
1468+ * @mfp: indicate whether management frame protection is used
14681469 * @crypto: crypto settings
14691470 * @key_len: length of WEP key for shared key authentication
14701471 * @key_idx: index of WEP key for shared key authentication
@@ -1485,6 +1486,7 @@ struct cfg80211_connect_params { · 14 unmodified lines
14851486 u8 *ie;
14861487 size_t ie_len;
14871488 bool privacy;
1489+ enum nl80211_mfp mfp;
14881490 struct cfg80211_crypto_settings crypto;
14891491 const u8 *key;
14901492 u8 key_len, key_idx;
include/uapi/linux/nl80211.h+3−3
@@ -374,8 +374,8 @@ · 373 unmodified lines
374374 * requests to connect to a specified network but without separating
375375 * auth and assoc steps. For this, you need to specify the SSID in a
376376 * %NL80211_ATTR_SSID attribute, and can optionally specify the association
377− * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC,
378− * %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
377+ * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
378+ * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
379379 * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and
380380 * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT.
381381 * Background scan period can optionally be
@@ -958,7 +958,7 @@ enum nl80211_commands { · 576 unmodified lines
958958 * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is
959959 * used for the association (&enum nl80211_mfp, represented as a u32);
960960 * this attribute can be used
961− * with %NL80211_CMD_ASSOCIATE request
961+ * with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests
962962 *
963963 * @NL80211_ATTR_STA_FLAGS2: Attribute containing a
964964 * &struct nl80211_sta_flag_update.
net/wireless/nl80211.c+9−0
@@ -5932,6 +5932,15 @@ static int nl80211_connect(struct sk_buff *skb, struct genl_info *info) · 5931 unmodified lines
59325932 connect.ie_len = nla_len(info->attrs[NL80211_ATTR_IE]);
59335933 }
59345934
5935+ if (info->attrs[NL80211_ATTR_USE_MFP]) {
5936+ connect.mfp = nla_get_u32(info->attrs[NL80211_ATTR_USE_MFP]);
5937+ if (connect.mfp != NL80211_MFP_REQUIRED &&
5938+ connect.mfp != NL80211_MFP_NO)
5939+ return -EINVAL;
5940+ } else {
5941+ connect.mfp = NL80211_MFP_NO;
5942+ }
5943+
59355944 if (info->attrs[NL80211_ATTR_WIPHY_FREQ]) {
59365945 connect.channel =
59375946 ieee80211_get_channel(wiphy,
net/wireless/sme.c+2−1
@@ -192,7 +192,8 @@ static int cfg80211_conn_do_work(struct wireless_dev *wdev) · 191 unmodified lines
192192 prev_bssid,
193193 params->ssid, params->ssid_len,
194194 params->ie, params->ie_len,
195− false, &params->crypto,
195+ params->mfp != NL80211_MFP_NO,
196+ &params->crypto,
196197 params->flags, &params->ht_capa,
197198 &params->ht_capa_mask);
198199 if (err)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t