Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6adbd21 authored by Ivo van Doorn's avatar Ivo van Doorn Committed by John W. Linville
Browse files

mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE



This adds a new flag to the ieee80211_key_conf structure.
This flag will inform the driver the key is pairwise rather then
a shared key.

This is important for drivers who support both types of keys,
and need to be informed which type of key this is. Alternative
would be drivers checking the address argument of set_key(),
but it will be safer when mac80211 is more explicit.

Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 988c0f72
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -621,11 +621,14 @@ enum ieee80211_key_alg {
 * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
 * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
 *	the driver for a TKIP key if it requires Michael MIC
 *	the driver for a TKIP key if it requires Michael MIC
 *	generation in software.
 *	generation in software.
 * @IEEE80211_KEY_FLAG_PAIRWISE: Set by mac80211, this flag indicates
 *	that the key is pairwise rather then a shared key.
 */
 */
enum ieee80211_key_flags {
enum ieee80211_key_flags {
	IEEE80211_KEY_FLAG_WMM_STA	= 1<<0,
	IEEE80211_KEY_FLAG_WMM_STA	= 1<<0,
	IEEE80211_KEY_FLAG_GENERATE_IV	= 1<<1,
	IEEE80211_KEY_FLAG_GENERATE_IV	= 1<<1,
	IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2,
	IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2,
	IEEE80211_KEY_FLAG_PAIRWISE	= 1<<3,
};
};


/**
/**
+7 −0
Original line number Original line Diff line number Diff line
@@ -323,6 +323,13 @@ void ieee80211_key_link(struct ieee80211_key *key,
		 */
		 */
		if (sta->flags & WLAN_STA_WME)
		if (sta->flags & WLAN_STA_WME)
			key->conf.flags |= IEEE80211_KEY_FLAG_WMM_STA;
			key->conf.flags |= IEEE80211_KEY_FLAG_WMM_STA;

		/*
		 * This key is for a specific sta interface,
		 * inform the driver that it should try to store
		 * this key as pairwise key.
		 */
		key->conf.flags |= IEEE80211_KEY_FLAG_PAIRWISE;
	} else {
	} else {
		if (sdata->vif.type == IEEE80211_IF_TYPE_STA) {
		if (sdata->vif.type == IEEE80211_IF_TYPE_STA) {
			struct sta_info *ap;
			struct sta_info *ap;