summaryrefslogtreecommitdiffstats
path: root/net/wireless/util.c
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-09-28 13:12:54 +0200
committerJohn W. Linville <linville@tuxdriver.com>2011-09-30 21:57:09 +0200
commit941c93cd039852b7ab02c74f4698c99d82bd6cfe (patch)
tree8f527535dcb145877ac8cb68f43723b05d574e6e /net/wireless/util.c
parentnl80211/mac80211: allow adding TDLS peers as stations (diff)
downloadlinux-941c93cd039852b7ab02c74f4698c99d82bd6cfe.tar.xz
linux-941c93cd039852b7ab02c74f4698c99d82bd6cfe.zip
mac80211: data path modification for TDLS peers
Mark the STA entries of enabled TDLS peers with a new "peer authorized" flag. During link setup, allow special TDLS setup frames through the AP, but otherwise drop all packets destined to the peer. This is required by the TDLS (802.11z) specification in order to prevent reordering of MSDUs between the AP and direct paths. When setup completes and the peer is authorized, send data directly, bypassing the AP. In the Rx path, allow data to be received directly from TDLS peers. Signed-off-by: Arik Nemtsov <arik@wizery.com> Cc: Kalyan C Gaddam <chakkal@iit.edu> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/util.c')
-rw-r--r--net/wireless/util.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 6304ed63588a..2f178f73943f 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -396,8 +396,9 @@ int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr,
}
break;
case cpu_to_le16(0):
- if (iftype != NL80211_IFTYPE_ADHOC)
- return -1;
+ if (iftype != NL80211_IFTYPE_ADHOC &&
+ iftype != NL80211_IFTYPE_STATION)
+ return -1;
break;
}