diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-12-18 19:31:23 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:59:46 -0500 |
commit | 678f5f7117d5780d3a51b201c9f44b7bf90f6a76 (patch) | |
tree | ddf555061ec729e3e14eabc506d0c3b8f32f25b8 /net/mac80211/util.c | |
parent | ce3edf6d0b979fa4d5da7204fd8c6f77f2b8622a (diff) |
mac80211: clean up eapol handling in TX path
The previous patch left only one user of the ieee80211_is_eapol()
function and that user can be eliminated easily by introducing
a new "frame is EAPOL" flag to handle the frame specially (we
already have this information) instead of doing the (expensive)
ieee80211_is_eapol() all the time.
Also, allow unencrypted frames to be sent when they are injected.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r-- | net/mac80211/util.c | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index fb7fd896cd0d..2b02b2b9d645 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -40,10 +40,6 @@ const unsigned char rfc1042_header[] = | |||
40 | const unsigned char bridge_tunnel_header[] = | 40 | const unsigned char bridge_tunnel_header[] = |
41 | { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 }; | 41 | { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 }; |
42 | 42 | ||
43 | /* No encapsulation header if EtherType < 0x600 (=length) */ | ||
44 | static const unsigned char eapol_header[] = | ||
45 | { 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, 0x88, 0x8e }; | ||
46 | |||
47 | 43 | ||
48 | static int rate_list_match(const int *rate_list, int rate) | 44 | static int rate_list_match(const int *rate_list, int rate) |
49 | { | 45 | { |
@@ -223,19 +219,6 @@ int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb) | |||
223 | } | 219 | } |
224 | EXPORT_SYMBOL(ieee80211_get_hdrlen_from_skb); | 220 | EXPORT_SYMBOL(ieee80211_get_hdrlen_from_skb); |
225 | 221 | ||
226 | int ieee80211_is_eapol(const struct sk_buff *skb, int hdrlen) | ||
227 | { | ||
228 | if (unlikely(skb->len < 10)) | ||
229 | return 0; | ||
230 | |||
231 | if (unlikely(skb->len >= hdrlen + sizeof(eapol_header) && | ||
232 | memcmp(skb->data + hdrlen, eapol_header, | ||
233 | sizeof(eapol_header)) == 0)) | ||
234 | return 1; | ||
235 | |||
236 | return 0; | ||
237 | } | ||
238 | |||
239 | void ieee80211_tx_set_iswep(struct ieee80211_txrx_data *tx) | 222 | void ieee80211_tx_set_iswep(struct ieee80211_txrx_data *tx) |
240 | { | 223 | { |
241 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) tx->skb->data; | 224 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) tx->skb->data; |